4.1.3. 访问令牌请求

客户端通过使用按附录B“application/x-www-form-urlencoded”格式在HTTP请求实体正文中发送下列UTF-8字符编码的参数向令牌端点发起请求:

  • grant_type必需的。值必须被设置为“authorization_code”。
  • code从授权服务器收到的授权码。
  • redirect_uri必需的,若“redirect_uri”参数如4.1.1节所述包含在授权请求中,且他们的值必须相同。
  • client_id必需的,如果客户端没有如3.2.1节所述与授权服务器进行身份认证。

如果客户端类型是机密的或客户端被颁发了客户端凭据(或选定的其他身份验证要求),客户端必须如 必需的,如果客户端没有如3.2.1节所述与授权服务器进行身份验证。

例如,客户端使用TLS发起如下的HTTP请求(额外的换行符仅用于显示目的):

  1. POST /token HTTP/1.1
  2. Host: server.example.com
  3. Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
  4. Content-Type: application/x-www-form-urlencoded
  5. grant_type=authorization_code&code=SplxlOBeZQQYbYS6WxSbIA&redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb

授权服务器必须:

  • 要求机密客户端或任何被颁发了客户端凭据(或有其他身份验证要求)的客户端进行客户端身份验证,
  • 若包括了客户端身份验证,验证客户端身份,
  • 确保授权码颁发给了通过身份验证的机密客户端,或者如果客户端是公开的,确保代码颁发给了请求中的“client_id”,
  • 验证授权码是有效的,并
  • 确保给出了“redirect_uri”参数,若“redirect_uri”参数如4.1.1所述包含在初始授权请求中,且若包含,确保它们的值是相同的。