【发布时间】:2015-01-25 13:25:06
【问题描述】:
我正在尝试使用 Oauth 2.0 对登录其 Google 帐户的用户进行身份验证。为此,我需要访问他们的姓名和电子邮件地址。我正在使用 phonegap 的 InAppBrowser 来执行此操作。
到目前为止,我有这个:
function openPage() {
var login_url = "https://accounts.google.com/o/oauth2/auth" + '?' + $.param({ client_id: "(not shown)", redirect_uri: "http://www.google.com", response_type: "token", scope: "openid profile email" });
var loginWindow = window.open(login_url, '_blank', 'location=yes');
loginWindow.addEventListener('loadstop', function(e) {
var url = e.url;
var access_token = url.split("access_token=")[1];
validateToken(access_token);
});
function validateToken(token) {
$.ajax({
url: 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=' + token,
data: null,
success: function(responseText){
alert("Validation Success!");
getUserInfo(token);
},
dataType: "jsonp"
});
}
function getUserInfo(token) {
$.ajax({
url: 'https://www.googleapis.com/oauth2/v1/userinfo?access_token=' + token,
data: null,
success: function(resp) {
user = resp;
alert(JSON.stringify(user));
},
dataType: "jsonp"
});
}
}
令牌的验证每次都有效,但一旦调用 getUserInfo(),返回的 JSON 就会充满错误和无效的凭据字符串。我究竟做错了什么?谢谢!
【问题讨论】:
标签: javascript cordova oauth inappbrowser