我在今天发生的Facebook登录时遇到了问题。 我通过Fb使用Rails omniouth-facebook gem为身份验证用户。
因此,经过一些调试后,我发现我从Facebook得到的uid
与特定用户存储在数据库中的uid
不同。
我有这个部分:
find_by(provider: auth.provider, uid: auth.uid)
其中auth为env['omniauth.auth']
,当我在数据库 uids
不匹配中手动检查用户auth.email时,此函数始终返回nil和Login Failure。
有人知道可能是什么问题吗?真的很感激任何提示。
谢谢, 博
答案 0 :(得分:1)
借助API v2.0,Facebook推出了应用范围的用户ID。
对于在切换到2.0后登录到您的应用的每个新用户,您将不再获得他们的“全局”用户ID,而只是应用程序范围的用户ID,这对您的应用来说是唯一的 - 更具体地说,它与您的应用ID相关联。
因此,如果您使用的是不同的应用ID,请分别说明。在某些时候切换应用程序ID,当然你会为同一个用户获得不同的app-scoped ID。
如果您的企业有多个应用,您可以通过Business Manager连接它们,以便您可以为不同的应用连接不同的应用范围的用户ID。