Oauth2协议中,authcode也就是授权码模式的逻辑是需要用户参与的授权方式。它的步骤如下:

  • (A)用户访问客户端,后者将前者导向认证服务器。

  • (B)用户选择是否给予客户端授权。

  • (C)假设用户给予授权,认证服务器将用户导向客户端事先指定的"重定向URI"(redirection URI),同时附上一个授权码。

  • (D)客户端收到授权码,附上早先的"重定向URI",向认证服务器申请令牌。这一步是在客户端的后台的服务器上完成的,对用户不可见。

  • (E)认证服务器核对了授权码和重定向URI,确认无误后,向客户端发送访问令牌(access token)和更新令牌(refresh token)。

对应的后台api接口逻辑和参数大致如下:

  1. applyAuthCode(需要用户登录获取用户ID,然后把code和userid保存在redis中,短时间内过期)
    1. response_type=code
    2. scope
    3. client_id
    4. state=random string
  2. applyToken(根据code找到userid,生成access_token和refresh_token,保存数据库中,较长时间过期)
    1. code
    2. client_id
    3. client_secret
    4. grant_type=authorization_code/refresh_token
  3. inquiryUserInfo(根据userid获取用户信息)
    1. access_token
    2. client_id
  4. revoke
    1. access_token
    2. client_id