【问题标题】:OAuth: how to get authenticated user info after access token?OAuth:如何在访问令牌后获取经过身份验证的用户信息?
【发布时间】:2017-05-01 12:35:08
【问题描述】:
  1. 用户访问应用程序客户端
  2. 应用程序客户端将用户重定向到授权服务器(通过用户代理/浏览器)
  3. 用户输入您的凭据(用户名/密码)
  4. 授权服务器确认凭据并将 AuthorizationCode(在授权代码授予的情况下)或访问令牌(在隐式授予的情况下)发送到重定向 URI(在我的情况下,自定义 Android 架构指向我的应用程序)。 ...

(省略其他涉及令牌交换或访问令牌使用步骤的步骤)

应用程序客户端如何以及何时获取有关提供其凭据的用户的任何信息(如用户 ID 或名称)??

我将 OAuth API 安全项目 (https://github.com/OAuth-Apis/apis) 用于我的授权服务器,并使用 Swagger 代码生成生成的资源服务器/API。

令牌请求和响应一切正常,并且授权服务器正在保存访问密钥以及有关已验证主体的信息。还有一个端点用于检索有关主体的此信息:/tokenInfo,但此端点供资源服务器使用(需要资源服务器凭据)。

所以我的问题只是关于应用程序客户端获取用户信息.... 我可以在我的 api 中创建一个端点,只是为了获取有关用户/主体的信息,基于访问令牌和 /tokenInfo 端点引用,并返回到应用程序客户端,但它很奇怪....我认为有一个标准...

有人可以帮我吗?

【问题讨论】:

    标签: android oauth oauth-2.0


    【解决方案1】:

    如果资源服务器没有公开任何返回用户信息的API,客户端应用程序就无法获取用户信息。如果存在这样的 API,客户端应用程序可以通过使用访问令牌访问 API 来获取用户信息。

    如果授权服务器支持OpenID Connect,则有两种标准方式获取用户信息。一种是请求授权服务器发出一个包含用户信息的ID token。另一种是访问UserInfo Endpoint。详情请参阅OpenID Connect Core 1.0

    【讨论】:

      猜你喜欢
      • 2017-07-03
      • 2021-06-06
      • 2017-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-30
      • 1970-01-01
      • 2018-01-30
      相关资源
      最近更新 更多