我正在阅读有关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
吗?
答案 0 :(得分:2)
配置文件ID是表示用户的静态字符串。如果您单独使用它来签署服务器上的用户并发出cookie或会话,那么如果攻击者获知用户的ID,他们可能会向您的服务器伪造登录请求并冒充用户,窃取他们的数据或代表他们进行交易。
另一方面,ID令牌是加密签名的JSON Web Token。通过验证文档中描述的令牌,您可以确定它来自Google并发布到您的合法客户端应用程序。 ID令牌在一小时后过期,而新的令牌则不同。
文档确实对这些安全概念有一般性解释,请查看video以获取ID令牌的说明。
https://developers.google.com/identity/sign-in/web/backend-auth