如果您的网站允许异地登录(通过Google、Steam等登录),那么存储回调结果(例如Steam ID)的最佳方式是什么,这样您就可以“记住”他们已经登录了。还有,最安全的方法是什么,这样就没有人可以“假装”登录了?
例如,我有一个用户通过Steam登录我的网站。我获得他们的Steam ID (一个大数字),然后将其存储在他们的cookie/会话中,作为他们的“登录”,直到过期。
有没有更好、更安全的方法呢?
发布于 2020-05-20 13:59:12
通常,这些类型的身份验证使用OAuth2,一旦用户登录,您将获得两个令牌,一个是用于与身份验证提供者的access_token通信的令牌,另一个是刷新令牌,当访问令牌即将到期时,您可以使用刷新令牌来获取新的令牌。
访问令牌包含一些用户信息和令牌的过期时间。你可以在这里粘贴这些标记来查看它们的数据:https://jwt.io/在这个网站上,你还可以找到几个库,你可以使用它们来有问题地读取这些标记。
您可以将令牌保存在内存中,以通过将其存储在本地存储或cookie中来避免泄漏。有关如何刷新或保持会话的信息,请查看此处:https://hasura.io/blog/best-practices-of-using-jwt-with-graphql
有关此工作流程的更多信息,我建议您选择要集成到您的应用程序中的第一种身份验证类型,并查看其OAuth文档。
下面是JS OAuth的googles文档,我想这就是您正在寻找的文档:https://developers.google.com/identity/protocols/oauth2#clientside
我还建议你在开始编码之前先看一段关于OAuth2如何工作的快速YouTube视频,以涵盖基础知识。
我希望这能帮到你。
https://stackoverflow.com/questions/61905596
复制相似问题