2

私はgoogle Oauth2 sign-inについてのドキュメントを読んでいます。Googleのログインに関する説明が不足しています

ここでは混乱を招く部分です:

profile.getIdに保存されていると私はそれを送信する場合、何が起こる何
var profile = googleUser.getBasicProfile(); 
    console.log("ID: " + profile.getId()); // Don't send this directly to your server! 
    console.log('Full Name: ' + profile.getName()); 

id_tokenには何が格納されていますか?私はコメントの代わりに説明をしたいと思っています。

// The ID token you need to pass to your backend: 
    var id_token = googleUser.getAuthResponse().id_token; 

ボーナス質問:Googleは同じid_token私は同じアカウントを使用してログインするたびに返すのですか?

答えて

2

プロファイルIDは、ユーザーを表す静的な文字列です。それを単独で使用してサーバー上のユーザーに署名し、Cookieまたはセッションを発行する場合、攻撃者がユーザーのIDを知った場合、サーバーへのサインイン要求を偽装し、ユーザーを偽装したり、データを盗んだり、それに代わって取引を行います。

一方、IDトークンには、暗号化されたJSON Web Tokenが署名されています。ドキュメントに記載されているようにトークンを検証することにより、トークンがGoogleから送信され、正当なクライアントアプリケーションに発行されたことを確認できます。 IDトークンは1時間後に消滅し、新しいトークンは異なる。

これらのセキュリティ概念の一般的な説明については、IDトークンの説明についてはvideoを参照してください。

https://developers.google.com/identity/sign-in/web/backend-auth

関連する問題