【发布时间】:2018-02-16 07:06:02
【问题描述】:
据我了解,在授权代码流程中,我们需要获取授权代码并在之后使用它来获取令牌。只有当用户确认指定的访问权限时,我们才能获得此代码。在浏览器将我们重定向到 redirect_uri 之后,响应将包含授权代码作为参数。那么,问题来了:是否有可能在没有浏览器或任何自制 UI 的情况下获得此授权码?我们可以在正确请求后在应用程序中获取它,例如https://mysite.tuz/authorize 吗?
【问题讨论】:
据我了解,在授权代码流程中,我们需要获取授权代码并在之后使用它来获取令牌。只有当用户确认指定的访问权限时,我们才能获得此代码。在浏览器将我们重定向到 redirect_uri 之后,响应将包含授权代码作为参数。那么,问题来了:是否有可能在没有浏览器或任何自制 UI 的情况下获得此授权码?我们可以在正确请求后在应用程序中获取它,例如https://mysite.tuz/authorize 吗?
【问题讨论】:
当您使用授权码流时,客户端需要用户代理(即浏览器或移动应用)从授权服务器获取授权码。
使用授权码的全部目的是它可以通过用户的网络浏览器(用户代理)传递,而不是直接通过网络浏览器(用户代理)传递访问令牌,这是不希望的。使用授权码,客户端可以直接从授权服务器获取访问令牌。
所以用户代理需要获取授权码并充当客户端和授权服务器之间的中介。
如果您不需要浏览器,那么授权代码流可能不是正确的选择。 OAuth 2.0 支持几种不同的授权,即检索访问令牌的方式。决定哪一种适合您的情况主要取决于您客户的类型。
这可能有助于您决定使用哪个流程 https://auth0.com/docs/api-auth/which-oauth-flow-to-use
【讨论】: