缺少对 Google 登录文档的解释

Lack of explanation to Google Sign-In documentation

我正在阅读有关 google Oauth2 sign-in 的文档。

这是令人困惑的部分:

    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;

额外的问题:Google return 每次我使用同一个帐户登录时, id_token 都是一样的吗?

个人资料 ID 是代表用户的静态字符串。如果您单独使用它来让用户在您的服务器上登录并发出 cookie 或会话,那么如果攻击者获知用户的 ID,他们可能会伪造对您的服务器的登录请求并冒充用户,窃取他们的数据或代表他们进行交易。

另一方面,ID 令牌是加密签名的 JSON Web Token。通过按照文档中的描述验证令牌,您可以确定它来自 Google 并已颁发给您的合法客户端应用程序。 ID 令牌在一小时后过期,新的会有所不同。

文档确实对这些安全概念进行了一般性解释,请查看 video 以了解 ID 令牌的解释。

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