从授权代码google oauth2获取刷新令牌

时间:2018-01-14 20:44:25

标签: javascript node.js oauth oauth-2.0 google-oauth

我正在尝试获取用于刷新和访问令牌的Exchange授权代码。

这是我发送给谷歌的帖子数据。

var requestBody = {
            code:**mycode**,
            grant_type:'authorization_code',
            client_secret: **mysecret**,
            client_id: **clientId**,
            redirect_uri:"http://localhost:3000"
        }

我通过POST调用将此数据发送到“https://www.googleapis.com/oauth2/v4/token

使用meteor post call

Meteor.http.call('POST', requestUrl, {'data': requestBody});

但我从谷歌收到此错误。

Error: failed [400] {  "error": "unsupported_grant_type",  "error_description": "Invalid grant_type: " } 

我知道为什么会收到此错误。

理想情况下它应该以

返回
{
 "access_token":"sometoken",
 "expires_in":3920,
 "token_type":"Bearer",
 "refresh_token":"refresh token"
}

2 个答案:

答案 0 :(得分:0)

遇到问题,而不是将数据作为data.send发送为params。

答案 1 :(得分:0)

确保在发送主体在HTTP URL查询参数中的帖子时不发布为JSon。

  

代码= 4 / X9lG6uWd8-MMJPElWggHZRzyFKtp.QubAT_P-GEwePvB8fYmgkJzntDnaiAI&安培; CLIENT_ID = {客户端Id} .apps.googleusercontent.com&安培; client_secret = {ClientSecret}&安培; REDIRECT_URI =瓮:IETF:WG:OAuth的:2.0:OOB&安培; grant_type = authorization_code

此帖子的内容类型也应该是"application/x-www-form-urlencoded"而不是JSON