Javascript 谷歌+;vs谷歌身份平台API

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函数中实现的。这真让人恼火 所以我做了一些研究,偶然发现了他们的“快速入门应用”,并浏览了一下。这比他们的指

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之一的功能
如果您只使用客户端,那么应该非常简单:您授权用户,然后使用API客户端访问资源。如果您正在执行更复杂的操作,例如管理会话等,则应在使用授权代码授权服务器后,使用API客户端的ID令牌来授权用户的会话