授权码许可

使用授权码(Authorization Code)许可类型获取access token 的流程如下:

  1. 在OAuth2授权服务上注册客户端应用(第三方应用)。

    在注册时需要为客户端应用提供一个唯一名称,OAuth2授权服务则为该应用生成一个密钥。同时,在注册时还需要提供一个重定向URL用以接收OAuth2授权服务返回的授权码

  2. 当用户尝试访问受保护资源时,会被重定向到 OAuth2 授权服务的认证页面,用户在认证页面中输入用户凭据。

  3. OAuth2 授权服务在收到用户凭据后对其进行验证,如果验证通过生成授权码,并将用户重定向到客户端应用程序指定的 URL 上,该 URL 为第 1 步注册时设置的重定向 URL。

    OAuth2服务器将授权码作为重定向 URL 的查询参数,以此来达成将授权码传给用户的目的。

  4. 重定向的 URL 指向客户端应用的一个接口,在该接口中,客户端会将授权码保存到本地,之后在每次访问受保护资源时都会使用保存的授权码、客户端名称和密钥向 OAuth2 授权服务请求访问令牌。

  5. OAuth2授权服务对收到的信息进行验证,如果验证成功,则返回一个OAuth2访问令牌。

  6. 客户端应用调用受保护资源的服务,并传递收到的 OAuth2 访问令牌。

  7. 受保护资源的服务在收到携带访问令牌的请求后,会调用OAuth2授权服务以验证访问令牌。

    • 如果令牌有效,受保护资源允许用户访问。

    • 如果令牌无效,OAuth2服务返回HTTP状态码403,表示令牌无效。

Last updated