对Google登录文档缺乏解释

时间:2017-05-04 18:37:10

标签: javascript google-api google-signin google-api-client googlesigninapi

我正在阅读有关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都会返回相同的id_token吗?

1 个答案:

答案 0 :(得分:2)

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

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

文档确实对这些安全概念有一般性解释,请查看video以获取ID令牌的说明。

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