Javascript 谷歌+;vs谷歌身份平台API
tl;dr:有人能解释一下这两个平台在实现客户端Google登录流方面的具体区别吗 背景故事: 我一直在尝试实现客户端谷歌登录到我的网站。首先,我使用标记实现了Google+平台的全局设置,因此可以监视用户会话。在这里获得信息: 但是,我遇到了一个问题,如果用户未登录,站点将自动检查用户登录状态,这导致许多“toastr”消息为“logged out”,这是我在signInCallback函数中实现的。这真让人恼火 所以我做了一些研究,偶然发现了他们的“快速入门应用”,并浏览了一下。这比他们的指南要复杂得多,谷歌标识平台上记录了许多元素,如下所示:Javascript 谷歌+;vs谷歌身份平台API,javascript,web,client,google-plus,google-identity,Javascript,Web,Client,Google Plus,Google Identity,tl;dr:有人能解释一下这两个平台在实现客户端Google登录流方面的具体区别吗 背景故事: 我一直在尝试实现客户端谷歌登录到我的网站。首先,我使用标记实现了Google+平台的全局设置,因此可以监视用户会话。在这里获得信息: 但是,我遇到了一个问题,如果用户未登录,站点将自动检查用户登录状态,这导致许多“toastr”消息为“logged out”,这是我在signInCallback函数中实现的。这真让人恼火 所以我做了一些研究,偶然发现了他们的“快速入门应用”,并浏览了一下。这比他们的指
现在我真的不明白实现他们登录的正确方法是什么——是轻量级的Google+按钮,带有用户状态的标记回调检查,还是监听器、gapi实例等的健壮GIP方法?这些平台提供了哪些不同的功能?谷歌+平台登录(gapi.auth)和身份平台(gapi.auth2)都是相关的,并且工作方式类似 两者之间的主要区别是: gapi.auth2支持更现代的JavaScript(),因此您可以执行以下操作:
var signinChanged = function (val) {
console.log('Signin state changed to ', val);
document.getElementById('signed-in-cell').innerText = val;
};
auth2.isSignedIn.listen(signinChanged);
…auth2有一个更明确的语法,可以让您更好地控制行为:
gapi.load('auth2', function() {
auth2 = gapi.auth2.init({
client_id: 'CLIENT_ID.apps.googleusercontent.com',
fetch_basic_profile: true,
scope: 'profile'
});
// Sign the user in, and then retrieve their ID.
auth2.signIn().then(function() {
console.log(auth2.currentUser.get().getId());
});
});
auth2提供了基本的配置文件支持,无需额外的API调用:
if (auth2.isSignedIn.get()) {
var profile = auth2.currentUser.get().getBasicProfile();
console.log('ID: ' + profile.getId());
console.log('Name: ' + profile.getName());
console.log('Image URL: ' + profile.getImageUrl());
console.log('Email: ' + profile.getEmail());
}
简而言之,我建议使用中记录的方法,例如
正确实施登录将取决于您想要的登录类型:
- 仅限客户端,您可以使用JavaScript/iOS/Android客户端
- 混合客户机-服务器身份验证,您将需要实现类似于QuickStart之一的功能