OAuth 2刷新令牌实现

OAuth 2刷新令牌实现,oauth,oauth-2.0,google-oauth,refresh-token,Oauth,Oauth 2.0,Google Oauth,Refresh Token,我正试图找出与OAuth2规范相关的刷新令牌的正确流程和用法,我完全搞不懂特定用例应该如何工作 我的主要问题是,如果我从某个OAuth提供商(在本例中是Google)收到一个刷新令牌,我有两个问题不知道如何解决: 如何安全地持久化刷新令牌,以便它可以用于获取新令牌以保持用户登录 如何确定需要刷新令牌的用户是谁?我不能让一个端点接收旧令牌或电子邮件地址来发布刷新的令牌,因为这看起来非常愚蠢 我相信我没有正确地考虑一些小的实现细节,我只是不希望我的后端API出现一些巨大的安全漏洞,如果我可以通过询

我正试图找出与OAuth2规范相关的刷新令牌的正确流程和用法,我完全搞不懂特定用例应该如何工作

我的主要问题是,如果我从某个OAuth提供商(在本例中是Google)收到一个刷新令牌,我有两个问题不知道如何解决:

  • 如何安全地持久化刷新令牌,以便它可以用于获取新令牌以保持用户登录
  • 如何确定需要刷新令牌的用户是谁?我不能让一个端点接收旧令牌或电子邮件地址来发布刷新的令牌,因为这看起来非常愚蠢

  • 我相信我没有正确地考虑一些小的实现细节,我只是不希望我的后端API出现一些巨大的安全漏洞,如果我可以通过询问StackOverflow的帮助人员这到底应该如何工作来防止它

    我应该补充一点,唯一看似合理的解决方案是使用某种定时刷新机制,但这将涉及在前端访问刷新令牌,我正试图避免这种情况,因为这本身似乎是一种安全风险

    我关心这里的最佳实践,所以如果我的整个实现有缺陷,我应该做X而不是Y或Z,那么我也愿意接受建议

    谢谢你抽出时间

    Ses

    如何安全地持久化刷新令牌,以便它可以用于获取新令牌以保持用户登录

    您可以将刷新令牌保存在某个位置,并在需要时使用它来获取新的访问令牌

    如何确定需要刷新令牌的用户是谁?我不能让一个端点接收旧令牌或电子邮件地址来发布刷新的令牌,因为这看起来非常愚蠢

    我认为您混淆了身份验证和授权

    Oauth2授予应用程序访问用户数据的权限。当您使用刷新令牌时,不涉及身份验证,无法知道是谁在执行该操作。Oauth2不会以任何方式对用户执行操作进行身份验证,Oauth2是您的应用程序代表用户以其
    授权执行操作。这不能确保用户在执行操作时在场


    为此,您需要使用并使用id令牌来识别正在使用您的应用程序的用户。

    检查。这似乎回答了我的问题,在多年来被授权和身份验证所迷惑之后,我想我现在更清楚地理解了两者的区别。非常感谢--我将研究如何实现Openid解决方案。身份验证是您的出生证明,身份验证是您的驾照