“无效请求”“缺少必需参数:grant_type”错误尝试使用JWT

时间:2016-06-10 04:52:03

标签: google-api jwt oauth2

根据Google的documentation on using service account,这是我到目前为止所做的。

  1. 使用以下有效负载创建JWT(json web令牌)。

    {"iss":"XXXXXXXX.gserviceaccount.com",
    "aud":"https://www.googleapis.com/oauth2/v4/token",
    "iat":"1465531250",
    "exp":"1465534850",
    "scope":"email profile}
    
  2. 使用Postman,我按照以下方式进行了http发布,希望能够获得oAuth2访问令牌。

    网址:https://www.googleapis.com/oauth2/v4/token

    接头:

    Content-Type: application/x-www-form-urlencoded
    grant_type: urn:ietf:params:oauth:grant-type:jwt-bearer
    assertion: <the JWT generated in step 1 above>
    
  3. 相反,我得到了如下错误响应。

    {
      "error": "invalid_request",
      "error_description": "Required parameter is missing: grant_type"
    }
    

    有人可以找到我的请求有什么问题吗?

    我甚至尝试了“https://accounts.google.com/o/oauth2/token”的不同端点,其grant_type为“authorization_code”以及“http://oauth.net/grant_type/jwt/1.0/bearer”。那也返回了同样的错误!

1 个答案:

答案 0 :(得分:0)

grant_typeassertion参数不作为请求标头传递,而是作为邮政请求参数传递(grant_type=xxxxxx&assertion=yyyyy