【问题标题】:How to authenticate the same user on multiple clients using OAuth2?如何使用 OAuth2 在多个客户端上对同一用户进行身份验证?
【发布时间】:2013-07-05 10:41:52
【问题描述】:

我正在使用资源所有者密码凭据流程根据我提供的 API 对我的 iOS 应用程序进行身份验证。这工作正常,我得到了访问令牌,并且可以在令牌过期时刷新它们。

但是,如果用户在多个客户端上安装应用程序,例如iPhone 和 iPad 使用相同的用户名和密码进行身份验证,它们都获得相同的访问令牌。首先刷新访问令牌的客户端使用新的访问令牌工作正常,但另一个客户端不再工作,因为它使用以前的访问令牌。

显而易见的解决方案是允许用户(资源所有者)拥有多个访问令牌,并在每次进行身份验证时返回一个新的访问令牌。这就提出了我应该如何清理旧的访问令牌的问题?

或者有没有更好的方法在多个客户端上对同一用户进行身份验证?

【问题讨论】:

    标签: oauth-2.0


    【解决方案1】:

    有几种处理令牌的策略,我建议使用自包含令牌。据我所知,大多数大型 OAuth2 提供商都使用此解决方案。自包含令牌将所有重要的令牌信息与一些安全数据打包在一起,参见例如JSON Web Tokenssignatureencryption。自包含令牌不需要存储在数据库中,随着时间的推移过期,但仍然可以安全地验证。但是,如果没有数据库,撤销此类令牌并非易事。

    使用自包含令牌,您的每个客户都可能拥有自己的访问令牌,您不必费心清理数据库中的旧令牌。

    【讨论】:

      猜你喜欢
      • 2021-01-21
      • 1970-01-01
      • 2013-07-20
      • 2017-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-10
      • 1970-01-01
      相关资源
      最近更新 更多