我想了解如何将Google或Facebook的auth与我的数据库集成。 我有一个带有电子邮件和密码的登录系统,用户表和消息表代表用户的消息。
当有人注册时,会创建一个具有userID的新用户。 当用户使用电子邮件和密码登录系统时,他会获得身份验证令牌, 并且对于用户所做的每个动作,如POST或GET请求获取或创建新消息,他发送他获得的令牌,系统通过此令牌找到userID,然后找到自己的消息。
现在我想添加谷歌和Facebook登录,我现在应该怎么做? 我可以从他们每个人得到一个令牌。但是用户实际上并不存在于我的用户表中,所以当我通过他的令牌搜索用户时,我不会得到任何东西,因为他不存在于用户表中,当我想将他插入此表时,我需要在那里填写密码字段,但我无法从谷歌获得它。
这样做的方法应该是什么? 谢谢。
答案 0 :(得分:0)
当他们第一次登录时,您可以从Facebook或谷歌请求他们的电子邮件,用户将授予您的应用程序访问权限以查看他们的电子邮件地址。 此时,您可以使用该电子邮件创建一个新用户,并添加一个标记,表示他们来自facebook / google。 其余的工作正常,他们会从您的应用程序中获取令牌,依此类推。 如果他们回来再次登录,您就不需要注册它们,因为它们已经存在于您的数据库中。
如果您需要他们的额外信息(更多信息,您可以从facebook / google请求的信息),您可以将他们重定向到特殊表格,以便首次登录。