2

我在閱讀有關google Oauth2 sign-in的文檔。對Google登錄文檔缺少解釋

下面是混淆的部分:

var profile = googleUser.getBasicProfile(); 
    console.log("ID: " + profile.getId()); // Don't send this directly to your server! 
    console.log('Full Name: ' + profile.getName()); 

什麼是存儲在profile.getId,如果我把它時會發生什麼?

代替id_token存儲什麼?我想解釋而不是評論中的建議。

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

獎金的問題:谷歌沒有我登錄同一id_token每次都返回使用相同的帳戶?

回答

2

配置文件ID是代表用戶的靜態字符串。如果您自己使用它來在您的服務器上籤署用戶併發出cookie或會話,那麼如果攻擊者知道用戶的ID,他們可以向您的服務器僞造登錄請求並冒充用戶,竊取他們的數據或代表他們進行交易。

另一方面,ID令牌是加密簽名的JSON Web Token。通過文檔中描述的驗證令牌,您可以確定它來自Google併發布到您的合法客戶端應用程序。 ID令牌在一小時後過期,新的令牌會有所不同。

本文檔對這些安全概念有一個一般的解釋,請查看video以獲取ID令牌的解釋。

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