我正试图从本指南中设置Google OAuth2.0,我已经设置并运行了所有内容。我可以获得授权code
、access_token
和refresh_token
以显示在我的console.log
中。我的问题是,我可以使用这些令牌中的哪一个来正确识别用户并将其登录到我的后端?
在正常情况下,用户会输入用户名&密码,这将唯一地识别他们。然而,在Google OAuth2.0的案例中,似乎授权code
、access_token
和refresh_token
都不能用于正确识别和登录某人。这种理解正确吗?
我读过一篇类似的帖子,但它似乎没有提供一个可以安全识别登录用户的最新答案。
如果我不能使用上面提到的任何令牌来安全地识别和登录用户,这可能吗?为什么我看到其他网站和应用程序使用"使用谷歌登录"one_answers"使用Facebook登录"?
我在另一篇StackOverflow帖子中读到的另一个解决方案是,只需获取帐户ID并将其用作标识符。这不是没有安全感吗?难道没人能猜出帐户ID吗?此外,这将假设这些帐户ID是私有的。
我的问题是,我可以使用这些令牌中的哪一个来正确识别用户并将其登录到我的后端?
打开id连接的id令牌。
解释
您混淆了授权和身份验证。
Oauth2用户授予并授权您的应用程序访问其数据,访问令牌允许您在有限的时间(1小时(内访问其数据。如果用户离线,则可以使用刷新令牌来请求新的访问令牌。这些论文都不会告诉你有用户在幕后操纵电话。
打开id连接允许您进行身份验证登录的用户将返回一个id令牌
Id令牌验证
通过HTTPS POST接收ID令牌后,必须验证令牌的完整性。验证ID令牌的完整性