已登录用户的OAuth2身份验证代码

已登录用户的OAuth2身份验证代码,oauth,oauth-2.0,Oauth,Oauth 2.0,使用OAuth2实现(无论是内部开发的,还是像Google、Facebook、Amazon登录等第三方),是否可以代表登录到移动应用程序或web应用程序的用户生成身份验证代码,而无需用户执行任何操作 获取身份验证代码的典型流程要求用户对请求的范围进行身份验证和授权。但在这种情况下,用户已经通过了应用程序的身份验证,因此我希望避免要求用户再次登录 调用外部第三方API时需要身份验证代码,该API最终将为刷新/访问令牌交换身份验证代码。后端系统(与API关联)需要基于与之共享的身份验证代码获取自己的

使用OAuth2实现(无论是内部开发的,还是像Google、Facebook、Amazon登录等第三方),是否可以代表登录到移动应用程序或web应用程序的用户生成身份验证代码,而无需用户执行任何操作

获取身份验证代码的典型流程要求用户对请求的范围进行身份验证和授权。但在这种情况下,用户已经通过了应用程序的身份验证,因此我希望避免要求用户再次登录


调用外部第三方API时需要身份验证代码,该API最终将为刷新/访问令牌交换身份验证代码。后端系统(与API关联)需要基于与之共享的身份验证代码获取自己的刷新/访问令牌。这不是一次性使用令牌;系统需要为登录用户拥有自己的令牌,独立于移动客户端。

可以为其他客户端获取用户令牌。您不需要新的身份验证代码,只需使用一些参数调用token endpoind。例如,在keydape中,此流称为令牌交换。您需要在KeyClope中配置客户端,然后可以使用您拥有的访问令牌调用令牌端点

{
  client_id: your client id,
  client_secret: your client secret, 
  subject_token: token you have
  audience: target client id, 
  grant_type: urn:ietf:params:oauth:grant-type:token-exchange, 
  requested token type: urn:ietf:params:oauth:token-type:refresh_token
}
您可以在此处阅读有关此流程的信息:

它也被称为代表Azure中的流:

实际上,在这种情况下,我特别需要生成一个授权代码,该代码与登录用户的同一身份验证服务器相关联。我不想为另一个客户端获取用户令牌。现在我不明白您实际需要什么。您有access token、id token和refresh token,但您想要新的授权码来获得新的授权码?是的,需要将授权码提供给第三方API,以便其系统可以使用它来为用户获取令牌。那么,为什么不将您拥有的令牌提供给它呢?如果您想要新的令牌,您可以使用刷新令牌获取它们。因为系统(与第三方API关联)需要基于共享的身份验证代码获取自己的刷新/访问令牌。这不是一次性使用令牌;该系统需要为登录用户提供自己的令牌,独立于移动客户端;我有一个已登录的用户,当他们想要链接他们的帐户时,需要为该用户提供一个到AlexaAPI的授权代码。看:(第6步->如何做)@DaveSalomon这是第5步,基本上是我问题的本质。我没有看到任何与身份验证提供商(如Google、Facebook、使用Amazon登录等)相关的文档,这些文档有助于服务器端API使用客户标识符作为参数获取身份验证代码。只有当提示客户通过基于web的界面登录时,身份验证服务器才会提供身份验证代码。