我正在尝试获取访问令牌&使用OAuth.io为Google提供商刷新令牌。我在OAuth.io中为access_type选择了离线。
以下是代码
OAuth.popup("google", {'authorize' : { "approval_prompt" : 'force'}})
.done(function(result) {
console.log(result);
})
.fail(function (err) {
//handle error with err
console.log(err);
});
我没有在响应中收到refresh_token。我只从响应中获得access_token。
访问令牌的JSON响应是:
{
"status": "success",
"data": {
"access_token": "ya29.pAGQWe3yxxxxxx",
"token_type": "Bearer",
"expires_in": 3600,
"request": {
"url": "https://www.googleapis.com",
"headers": {
"Authorization": "Bearer {{token}}"
}
},
"id_token": "eyJhbGciOiJSUzIxxxxxxxx"
},
"state": "Q9nfocQXJxxxx",
"provider": "google"
}
参考
我找到了这个SO链接Getting refresh tokens from Google with OAuth.io 他们在这里解释了如何在服务器端获取刷新令牌。
我想在客户端JS中获取刷新令牌。
答案 0 :(得分:2)
转到OAuth.io应用常规设置页面,选择显示高级选项,然后选择将刷新令牌发送到前端。
在集成的API中,选择 access_type 为离线。这将使用以下代码将刷新令牌发送到前端
var oauthOptions = { 'authorize' : { "approval_prompt" : "force" } };
OAuth.popup("google", oauthOptions)
.done(function(result) {
console.log("Post postProcessing");
console.log(result);
})
.fail(function (err) {
console.log(err);
});
答案 1 :(得分:0)
尝试将第一行更改为:
OAuth.popup("google", {
'authorize' : {
"approval_prompt" : "force",
"access_type" : "offline"}})
Google's docs描述了离线刷新令牌的工作原理。
答案 2 :(得分:-1)
您还可以使用Open Oauth Here