Google+ 登录/注册按钮

Posted

技术标签:

【中文标题】Google+ 登录/注册按钮【英文标题】:Google+ Signin/Singup button 【发布时间】:2013-06-21 00:22:50 【问题描述】:

我想在我的网站www.bendali.co.za 中添加一个 Google + 登录/注册按钮。我已经输入了这段代码:

    <!-- Place this asynchronous javascript just before your </body> tag -->
    <script type="text/javascript">

      (function() 
       var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
       po.src = 'https://apis.google.com/js/client:plusone.js';
       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
     )();


function signinCallback(authResult) 
  if (authResult['access_token']) 
    // Successfully authorized
    // Hide the sign-in button now that the user is authorized, for example:
    document.getElementById('signinButton').setAttribute('style', 'display: none');
   else if (authResult['error']) 
    // There was an error.
    // Possible error codes:
    //   "access_denied" - User denied access to your app
    //   "immediate_failed" - Could not automatically log in the user
    // console.log('There was an error: ' + authResult['error']);
  



    </script>

<span id="signinButton">
  <span
    class="g-signin"
    data-callback="signinCallback"
    data-clientid="712370252357.apps.googleusercontent.com"
    data-cookiepolicy="single_host_origin"
    data-requestvisibleactions="http://schemas.google.com/AddActivity"
    data-scope="https://www.googleapis.com/auth/plus.login">

</span>
</span>

我从https://developers.google.com/+/web/signin/ 拿走了它。但是当我按下它时,它会给我对话框和所有内容,我接受它并且按钮消失(所有这些都是正常的)。但它不会让我登录或任何东西。我将如何让它做到这一点?

提前致谢。

【问题讨论】:

【参考方案1】:

我没有发现您的代码有任何问题,在我的机器上进行的快速测试表明它可以正常工作。

您可以通过打开 Web 浏览器的 JavaScript 控制台并尝试获取当前会话的访问令牌来测试您是否已登录。以下函数:

gapi.auth.getToken();

如果您没有登录,将返回 null 和类似的东西:

Object state: "", access_token: "ya29.lkjasdlkjasd....", token_type: "Bearer", expires_in: "3600", code: "4/.....wo8WbjRKPN4WMqTmHjyTFGPeKJnufgI"…

如果您已登录。控制台还应该为您提供有关阻止登录代码工作的任何错误的更多信息。

如果你想做一些更复杂的事情,比如让用户登录你的网站,你应该从Google+ Quickstarts开始,了解如何将你的服务器与授权用户连接起来,然后take a look at Photohunt更全面的网站示例。

【讨论】:

那么您成功登录了吗?我的意思是它告诉你你已经登录了吗? 登录是什么意思?简短的版本是您在成功登录后处于“授权”状态。一旦您处于授权状态,您的应用可以代表用户向 Google 进行 API 调用(获取用户的显示名称,列出可见的人您的应用等)。 为了反映用户正在登录,我们建议在登录回调中调用 people.get API,以便您可以获取用户的姓名和个人资料图片来问候他们。不过,此时您已经可以代表用户进行 API 调用。要了解有关问候用户的更多信息,请在太平洋标准时间今天下午 2:30 收听我们的 Google+ 开发者直播节目。 (plus.google.com/events/cblr79ob8a042sjg64jgf93ka20) 感谢您的帮助,我所说的登录是指他们将能够写帖子或做一些bendali.co.za 用户可以做的事情。 如果您想将它们与您的站点连接起来,您需要做的工作不仅仅是授权它们。您应该查看 Google+ 快速入门,看看这是否能让您更接近您的服务器端语言:developers.google.com/+/quickstart

以上是关于Google+ 登录/注册按钮的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 和 VueJS:如何处理使用 Google 登录但未在我的应用中注册的用户?用户资料管理

允许用户在使用angular firebase与google注册时,选择用哪个邮箱注册。

自定义 Google 登录按钮 - iOS

Firebase - 检查使用 Google 帐户创建的用户是不是正在注册或登录?

居中 Google 登录按钮文本 (iOS)

Google+ 登录按钮 [class='g-signin']