来自响应的 Facebook UID 与存储在数据库中的用户 uid 不匹配
Facebook UID from response doesn't match with user's uid stored in database
我今天遇到了 Facebook 登录的生产问题。
我正在使用 Rails omniouth-facebook gem 通过 Facebook 对用户进行身份验证。
因此,经过一些调试后,我发现我从 Facebook 得到的响应 uid
与特定用户存储在数据库中的 uid
不同。
我有这部分:
find_by(provider: auth.provider, uid: auth.uid)
其中 auth 是 env['omniauth.auth']
,当我在我的数据库中手动检查用户 auth.email uids
不匹配 ,所以这个函数总是returns 无且登录失败。
有人知道问题出在哪里吗?真的很感激任何提示。
谢谢,
博扬
在 API v2.0 中,Facebook 引入了应用范围内的用户 ID。
对于在切换到 2.0 后登录到您的应用程序的每个新用户,您将不再获得他们的“全局”用户 ID,而只会获得一个应用程序范围内的用户 ID,这是您的应用程序所独有的- 更具体地说,它与您的应用程序 ID 相关联。
因此,如果您使用不同的应用程序 ID,请分别。在某些时候切换应用程序 ID,当然您会为同一用户获得不同的应用程序范围的 ID。
如果您的公司有多个应用程序,您可以通过商务管理平台连接它们,这样您就可以为不同的应用程序连接不同的应用程序范围的用户 ID。
我今天遇到了 Facebook 登录的生产问题。 我正在使用 Rails omniouth-facebook gem 通过 Facebook 对用户进行身份验证。
因此,经过一些调试后,我发现我从 Facebook 得到的响应 uid
与特定用户存储在数据库中的 uid
不同。
我有这部分:
find_by(provider: auth.provider, uid: auth.uid)
其中 auth 是 env['omniauth.auth']
,当我在我的数据库中手动检查用户 auth.email uids
不匹配 ,所以这个函数总是returns 无且登录失败。
有人知道问题出在哪里吗?真的很感激任何提示。
谢谢, 博扬
在 API v2.0 中,Facebook 引入了应用范围内的用户 ID。
对于在切换到 2.0 后登录到您的应用程序的每个新用户,您将不再获得他们的“全局”用户 ID,而只会获得一个应用程序范围内的用户 ID,这是您的应用程序所独有的- 更具体地说,它与您的应用程序 ID 相关联。
因此,如果您使用不同的应用程序 ID,请分别。在某些时候切换应用程序 ID,当然您会为同一用户获得不同的应用程序范围的 ID。
如果您的公司有多个应用程序,您可以通过商务管理平台连接它们,这样您就可以为不同的应用程序连接不同的应用程序范围的用户 ID。