我希望在我的网站上允许用户使用Google账号登录,打算使用OpenID实现此功能。但由于Google的优势,我也想允许用户通过Google账号进行登录。我曾经注意到一些网站不支持OpenID,但却可以通过Google (Gmail) 账号登录(可能我记错了)。
如何实现“使用Google账号登录”?
我希望在我的网站上允许用户使用Google账号登录,打算使用OpenID实现此功能。但由于Google的优势,我也想允许用户通过Google账号进行登录。我曾经注意到一些网站不支持OpenID,但却可以通过Google (Gmail) 账号登录(可能我记错了)。
如何实现“使用Google账号登录”?
将Google登录集成到您的Web应用程序中
加载Google平台库
您必须在集成Google登录的Web页面上包含Google平台库。
<script src="https://apis.google.com/js/platform.js" async defer></script>
指定您的应用程序的客户端ID
请使用google-signin-client_id元素,并填写您在Google开发者控制台为应用程序创建的客户端ID。
<meta name="google-signin-client_id" content="YOUR_CLIENT_ID.apps.googleusercontent.com">
<div class="g-signin2" data-onsuccess="onSignIn"></div>
其他信息可以在这里找到:https://developers.google.com/identity/sign-in/web/sign-in
其他可能的解决方案是
认证协议
OAuth 2.0概述
OpenID Connect
用于服务器端Web应用程序的OAuth 2.0
用于JavaScript Web应用程序的OAuth 2.0
用于移动设备和桌面应用程序的OAuth 2.0
https://apis.google.com/js/platform.js
添加到我的页面中? - Simon H但我想允许使用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>
Google SignIn集成简单步骤: