【发布时间】:2015-05-26 07:12:26
【问题描述】:
我正在构建一个系统,人们可以通过验证来阅读他们的 gmail。我在 Python 中使用 OAuth2 在我的网站上运行良好;在谷歌的回复中,我得到了一个access_token、一个token_type、一个expires_in和(最重要的是)一个refresh_token。
我现在想在 Javascript 中进行同样的工作(对于我正在使用 Ionic 构建的应用程序)。所以我使用ngCordovaOauth通过以下代码进行身份验证:
$cordovaOauth.google(
'xxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com',
['https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/gmail.readonly'],
{
'access_type': 'offline',
'approval_prompt': 'force'
}
)
.then(function(result){
console.log("Response object -> " + JSON.stringify(result));
}, function(error){
console.log('Error -> ' + error);
});
正如预期的那样,这会在我的手机上产生以下屏幕:
但是在我返回的 json 中没有 refresh_token:
{"access_token":"xxxx.xxxxxxxxxxxx","token_type":"Bearer","expires_in":"3599"}
有人知道为什么我在使用 Javascript api 时没有得到refesh_token 吗?欢迎所有提示!
【问题讨论】:
标签: javascript cordova oauth gmail ngcordova