首页 文章

OAuth:如何在访问令牌后获取经过身份验证的用户信息?

提问于
浏览
0
  • 用户访问Application Client

  • Application Client将用户重定向到Authorization Server(通过用户代理/浏览器)

  • 用户输入您的凭据(用户名/密码)

  • 授权服务器确认凭据并将AuthorizationCode(在授权代码授权的情况下)或访问令牌(在隐式授权的情况下)发送到重定向URI(在我的情况下,指向我的应用程序的自定义Android架构) . ...

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

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

我正在为我的授权服务器使用OAuth API安全项目(https://github.com/OAuth-Apis/apis),以及由Swagger code-gen生成的资源服务器/ API .

令牌请求和响应以及授权服务器 is saving the Access Keys with info about the Authenticated Principals fine 都可以 . 还有一个 endpoints 用于检索有关principal:/ tokenInfo的此信息,但此 endpoints 用于资源服务器使用(需要资源服务器凭据) .

所以我的问题只是关于Application Client获取用户信息....我可以在我的api中创建一个 endpoints ,仅根据访问令牌和/ tokenInfo endpoints 引用获取有关用户/主体的信息,并返回到Application Client ,但它很奇怪....我认为有一个标准......

有人能帮我吗?

1 回答

  • 2

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

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

相关问题