如果您的网站允许异地登录(通过Google,Steam等登录(,那么存储回调结果(例如Steam ID(的最佳方式是什么,以便您"记住"他们已登录。而且,最安全的方法是什么,这样没有人可以"伪造"登录?
例如,我有一个用户通过 Steam 登录我的网站。我得到他们的 Steam ID(一个很大的数字(,然后将其作为他们的"登录名"存储在他们的 cookie/会话中,直到过期。
有没有更好的方法,更安全的方法?
通常,这些类型的身份验证使用 OAuth2,一旦用户登录了您获得的几个令牌,一个是用于与身份验证提供程序的 API 通信的access_token,另一个是刷新令牌,可用于在访问令牌即将过期时获取新令牌。
访问令牌包含一些用户信息和令牌的过期时间。 您可以在此处查看这些令牌以查看其数据:https://jwt.io/在此网站上,您还可以找到几个库,您可以使用它们来读取这些令牌。
您可以将令牌保存在内存中,通过将令牌存储在本地存储或 Cookie 中来避免泄漏。有关如何刷新或保持会话,请查看此处:https://hasura.io/blog/best-practices-of-using-jwt-with-graphql
有关此工作流的详细信息,我建议您选择要集成到应用程序中的第一种身份验证类型,并查看其 OAuth 文档。
这是 JS OAuth 的谷歌文档,我认为您正在寻找的文档: https://developers.google.com/identity/protocols/oauth2#clientside
我还建议您在开始编码之前观看有关OAuth2如何工作的快速YouTube视频,以涵盖基础知识。
我希望这有所帮助。