我正在将Google的登录Apis集成到一个网站上,我需要将用户的详细信息放在我们的数据库中,以便在他们下次登录时使用它。
谷歌开发人员明确指出开发人员不应将用户ID存储在数据库中的行,而应使用谷歌生成的令牌ID来验证用户的合法性。
我完全赞同这一点,但令牌的直播周期只是很短的一段时间。如果我们在数据库中插入令牌,则下次用户登录时,令牌将与我们的数据库中的令牌不同。那么我们如何通过谷歌登录来通过令牌ID授权用户?
我已经阅读了所有googles开发人员文档https://developers.google.com/identity/sign-in/web/backend-auth,除了他们的身份验证过程之外,没有具体解释这一点。
有人可以帮助那些可能有过这方面经验的人吗?
非常感谢
这是谷歌警告
警告:不接受普通用户ID,例如您可以使用的用户ID 您的后端服务器上的GoogleSignInAccount.getId()方法。一个 修改后的客户端应用程序可以向服务器发送任意用户ID 模仿用户,因此您必须使用可验证的ID令牌 安全地获取服务器端登录用户的用户ID。
答案 0 :(得分:1)
谷歌开发人员明确指出开发人员不应将用户ID存储在数据库中的行
不,他们没有。
他们告诉您,您的服务器不应该信任用户ID直接由客户端发送给它 - 因为任何人都可以轻易伪造这些。
相反,您应该将您在客户端获得的令牌发送到服务器(这些令牌不能“猜到”,因此您不能简单地伪造它们) - 然后您制作一个<使用该令牌进行em>服务器端 API调用,以获取用户ID。