私のサイトでは、ユーザーが Google アカウントでサインインできるようにしたいと考えています。openid を使用する予定ですが、より多くの利点があるため、Google でのサインインを許可したいと考えています。過去に、openID をサポートしていなくても、Google (gmail) アカウントと IIRC でサインインできるサイトがいくつかあることに気付きました (ただし、間違っている可能性があります)。
「Google でサインイン」を実装するにはどうすればよいですか?
私のサイトでは、ユーザーが Google アカウントでサインインできるようにしたいと考えています。openid を使用する予定ですが、より多くの利点があるため、Google でのサインインを許可したいと考えています。過去に、openID をサポートしていなくても、Google (gmail) アカウントと IIRC でサインインできるサイトがいくつかあることに気付きました (ただし、間違っている可能性があります)。
「Google でサインイン」を実装するにはどうすればよいですか?
OpenIDを使用する場合は、それを使用してください。GoogleはすでにOpenID2.0プロバイダーです。
GoogleのOpenIDプロバイダーは次の場所にあります:https ://www.google.com/accounts/o8/ud
(注:ブラウザーでそのURIにアクセスする意味はありませんが、OpenIDでは機能します。)
これは主にアカウントAPIページで対処され、OAuthとハイブリッドおよびプロプライエタリログインシステムにも対処します。サイトによっては、認証にOpenIDを内部的に使用するOpenSocialコンテナーであるFriendConnectを使用することもできます。
もちろん、私はそのプロジェクトのDPEであるため、Friend Connectに偏っていますが、ソーシャルグラフを含む作業も行っていない限り、OpenIDプロバイダーを使用して直接サービスを提供する方がよいでしょう。
2012年の編集:ログインにOAuth2.0を使用したい。GFCはシャットダウンされています。
サイトへのログインに使用する ID プロバイダーをユーザーが選択できるオールインワン ソリューションであるRPXに興味があるかもしれません。Google と OpenID だけでなく、他の多くの機能もサポートされています。
RPX は、各 ID プロバイダーとのインターフェイスのすべての詳細を処理し、操作するための共通 API を提供します。
あなたが探しているのはGoogle Accounts APIだと思います。
あなたが求めているのはGoogle Friend Connectだと思います
編集:廃止されたため、もう必要ありません。
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>
SOが使用し、GoogleによってサポートされているopenId(http://openid.net/ )を調べることができます。