在我的网站上,我想允许用户使用Google帐户登录。我打算使用openid,但我想允许使用google登录,因为它有更多好处。我在过去注意到一些网站能够使用google(gmail)帐户和IIRC登录,虽然他们不支持openID(但我可能错了)。
如何实施'使用google登录'?
答案 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集成的简单步骤: