如何在我的网站上实施“使用谷歌登录”?

时间:2009-10-06 20:30:06

标签: login gmail cross-domain openid google-oauth

在我的网站上,我想允许用户使用Google帐户登录。我打算使用openid,但我想允许使用google登录,因为它有更多好处。我在过去注意到一些网站能够使用google(gmail)帐户和IIRC登录,虽然他们不支持openID(但我可能错了)。

如何实施'使用google登录'?

8 个答案:

答案 0 :(得分:31)

如果您打算使用OpenID,请使用它。 Google已经是OpenID 2.0提供商。

Google的OpenID提供商位于:https://www.google.com/accounts/o8/ud

(注意:在浏览器中访问该URI没有意义,但它确实适用于OpenID。)

这主要在Accounts API页面上解决,该页面还涉及OAuth以及混合和专有登录系统。根据您的站点,您可能还想使用Friend Connect,这是一个内部使用OpenID进行身份验证的OpenSocial容器。

我当然偏向于朋友连接,因为我是该项目的DPE,但你可能更好地直接使用OpenID提供商,除非你也做的事情涉及社交图。

编辑2012:您想使用OAuth 2.0 for login。 GFC正在shut down

答案 1 :(得分:16)

您可能对RPX感兴趣,这是一个一体化的解决方案,可让用户选择他们想要用来登录您网站的身份提供商。不仅支持Google和OpenID,还支持许多其他功能。

RPX负责处理与每个身份提供商的接口的所有细节,并为您提供了一个可以使用的通用API。

答案 2 :(得分:4)

将Google登录集成到您的网络应用中

Create a Google Developers Console project and client ID.

加载Google平台库

您必须在整合Google登录的网页上加入Google平台库。

<script src="https://apis.google.com/js/platform.js" async defer></script>

指定您应用的客户ID

使用google-signin-client_id元素在Google Developers Console中指定您为应用创建的客户端ID。

<meta name="google-signin-client_id" content="YOUR_CLIENT_ID.apps.googleusercontent.com">

注意:您还可以使用gapi.auth2.init()方法的client_id参数指定应用的客户端ID。

添加Google登录按钮

向您的网站添加Google登录按钮的最简单方法是使用自动呈现的登录按钮。只需几行代码,您就可以添加一个自动配置的按钮,以便为用户的登录状态和您请求的范围提供适当的文本,徽标和颜色。

要创建使用默认设置的Google登录按钮,请将包含g-signin2类的div元素添加到您的登录页面:

<div class="g-signin2" data-onsuccess="onSignIn"></div>

其他信息可以找到here

其他可能的解决方案

Using OAuth 2.0 to Access Google APIs

身份验证协议

OAuth 2.0概述

OpenID Connect

服务器端Web应用的OAuth 2.0

适用于JavaScript网络应用的OAuth 2.0

OAuth 2.0 for Mobile&amp;桌面应用

答案 3 :(得分:1)

我相信你要找的是Google Accounts API

答案 4 :(得分:1)

我认为你想要的是Google Friend Connect

编辑:不,你不再使用它,因为它已被弃用。

答案 5 :(得分:1)

  

但我想允许使用Google登录

在这种情况下,请添加以下代码

<强> HTML

 <div id="mySignin" onclick="login()"><img src="google_image_here.png" alt="google" style="cursor:pointer;height: 60px;width: 309px;"/></div>

<强> JS

        <script type="text/javascript">
        function login() 
        {
          var myParams = {
            'clientid' : 'YOUR_CLIENT_ID.apps.googleusercontent.com',
            'cookiepolicy' : 'single_host_origin',
            'callback' : 'loginCallback',
            'approvalprompt':'force',
            'scope' : 'https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/plus.profile.emails.read'
          };
          gapi.auth.signIn(myParams);
        }

        function loginCallback(result)
        {
            if(result['status']['signed_in'])
            {
                var request = gapi.client.plus.people.get(
                {
                    'userId': 'me'
                });
                request.execute(function (resp)
                {
                    /* console.log(resp);
                    console.log(resp['id']); */
                    var email = '';
                    if(resp['emails'])
                    {
                        for(i = 0; i < resp['emails'].length; i++)
                        {
                            if(resp['emails'][i]['type'] == 'account')
                            {
                                email = resp['emails'][i]['value'];//here is required email id
                            }
                        }
                    }
                   var usersname = resp['displayName'];//required name
                });
            }
        }
        function onLoadCallback()
        {
            gapi.client.setApiKey('YOUR_API_KEY');
            gapi.client.load('plus', 'v1',function(){});
        }

            </script>

        <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.js?onload=onLoadCallback';
               var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
             })();
        </script>

答案 6 :(得分:0)

您可以查看SO使用的openId(http://openid.net/),并得到Google的支持。

答案 7 :(得分:0)

Google SignIn集成的简单步骤:

  1. 首先转到this链接(https://console.developers.google.com/
  2. 从左上角的可用下拉列表中选择一个项目。如果您尚未创建项目。请创建一个项目

enter image description here

  1. 创建项目后,单击 OAuth同意屏幕,并填写诸如应用程序名称和应用程序徽标之类的详细信息。可选详细信息,例如域URL,重定向URL

  2. 转到凭据,然后单击“创建凭据”下拉列表,然后单击“ Oauth客户端ID”。在表格中填写详细信息 enter image description here

  3. 记下用于登录API集成的客户端ID和密钥

  4. 对于API集成,请查看this。对于reactangular应用程序,可以使用许多NPM软件包以简化配置。