我正在使用谷歌登录自定义网站。在这里我为它写了代码
var sOAuthServiceEndPoint = "https://accounts.google.com/o/oauth2/auth?scope=http://gdata.youtube.com https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email&response_type=token&";
var sOAuthRedirectURL = "http://example.com/testpage/test.html";
var termsAndCondURL = "termsandcondition.html";
var sOAuthClientID = "294016263542.apps.googleusercontent.com";
var sAuthenticationURL = sOAuthServiceEndPoint + "redirect_uri=" + sOAuthRedirectURL + "&client_id=" + sOAuthClientID;
即使我使用以下功能获得了访问令牌
function fnOnLoad() {
//alert("Form Loaded");
var sAccessToken = '';
var params = {}, queryString = location.hash.substring(1),regex = /([^&=]+)=([^&]*)/g, m;
while (m = regex.exec(queryString)) {
params[decodeURIComponent(m[1])] = decodeURIComponent(m[2]);
}
if(params.error){
if(params.error == "access_denied"){
sAccessToken = "access_denied";
alert(sAccessToken);
}
}else{
sAccessToken = params.access_token;
alert(sAccessToken);
}
window.opener.fnAuthorisationSuccess(sAccessToken);
window.close();
}
它正在成功运行并重定向到我想要的其他页面。但我的问题是如何检索用户登录名..?
我正在使用javascript。
先谢谢
答案 0 :(得分:1)
这可以在documentation。
中找到在您的应用程序获取访问令牌并且(如有必要)对其进行验证后,您可以在向Google API发出请求时使用该访问令牌。如果访问令牌请求中包含https://www.googleapis.com/auth/userinfo.profile范围,则可以通过调用UserInfo端点来使用访问令牌获取用户的基本配置文件信息。
终点:
https://www.googleapis.com/oauth2/v1/userinfo
返回基本用户个人资料信息,包括姓名,用户ID,性别,出生日期,照片,区域设置和时区。如果请求中存在https://www.googleapis.com/auth/userinfo.email范围,则用户的电子邮件也将出现在响应中。如果电子邮件已经过验证,那么还有一个字段表明该电子邮件是经过验证的地址。