これはGmailのログインaccounts.googleにリダイレクト)中央SSOドメインを使用して、ユーチューブやGmailのような2つのO複数のウェブサイト間のクロスドメイン通信を可能にする技術的解決スキーム(accounts.google.com)
1 .comはあなたを特定し、アカウント情報で認証トークン(JWT形式)を発行します。トークンは認証トークンを探しているブラウザのlocalStorage
//Store the Json Web token with accountInfo in localStorage
localStorage.setItem('tokenId',jwt);
2)YouTubeのチェックaccounts.google.comのlocalStorageに格納されています。見つかった場合は、入力することができます。
中間ドメインaccounts.google.com
を使用して、クッキーとlocalStorageをドメイン間で共有することができます。ホームページにはiframe
が埋め込まれており、クッキーにアクセスしてメインにメッセージを送信します。
//Create iframe when page is loaded pointing to sso domain. For example in gmail.com and youtube.com pointing to accounts.google.com
var iframe = document.createElement('iframe');
iframe.style.display = "none";
iframe.src = 'https://sso.domain.com/sso.html?sourceDomain=...;
iframe.id = 'sso.iframe';
document.body.appendChild(iframe);
のiframeがロードされ、親ページにJWTとのメッセージを送信し
window.parent.postMessage(jwt, sourceDomain);
親ページがトークン
//Message listener for SSO events (created by the sso.iframe)
addEventListener("message", _listener, false);
function _listener(event){
//origin check
if ( sourceDomain.lastIndexOf(event.origin) == -1){
return;
}
var jwt = event.data
//do something with the token...
}
を受けるので、domain1.comとdomain2.comすることができますこの方法でcookie/localStorageを共有します。 Chrome-> Inspect-> Resources->ローカルストレージを開き、アカウント情報がaccounts.google.comに表示されます(多くのデータフィールドがあります)。
JWTは自己完結型で、サーバーキーで署名されています。これは一般的なスキーマで、このようにSSOの実装を見にhttps://github.com/Aralink/ssojwtをチェックアウトし、異なるブラウザ
ですべての問題を解決するにはユーザーデータが含まれており、発行体の整合性とアイデンティティは
を確認することができますGoogleによって使用されます。 GmailやYouTubeのコードを閲覧すると、多くのものやその他の追加のフィールドが表示されます。 Googleはまた、起源の制限を追加します。 accounts.google.com
SSOを使用するには、Google Appsに登録する必要があります。統合IDを取得し、認可された起源を指定してください。
Gmailにログインして初めてYouTubeにアクセスしたときのlocalStorageの読み方を教えてください。 – chanchal118