Facebook不同的uid,id

时间:2015-04-15 07:52:49

标签: ruby-on-rails facebook facebook-graph-api

我有一个网络应用程序。我正在使用Devise gem,我有一个扩展Devise::OmniauthCallbacksController的控制器。我使用request.env["omniauth.auth"]来授权用户。到目前为止,去年一切都很好。目前我的数据库中有uid列用户。

现在,我正在构建移动应用程序,当我对用户进行身份验证时,我将令牌发送到服务器,并且我想验证用户是否已保留在我的数据库中。如果用户没有被持久化,我应该创建一个新帐户(在users表中添加行)并返回数据。

client = OAuth2::Client.new(
  ENV[Rails.application.config.fb_app[:id]],
  ENV[Rails.application.config.fb_app[:secret]],
  site: 'https://graph.facebook.com')
token = OAuth2::AccessToken.new(client, fb_token)
user_data = ActiveSupport::JSON.decode(token.get('/me').body)
user = User.find_by(uid: user_data['id'])

问题是返回的id与数据库中的uid不同。我看到Facebook为不同的FB应用程序返回不同的id-s但我只有一个应用程序。

任何想法我应该如何处理这个问题?

P.S。当我从这里获取用户数据时:

https://graph.facebook.com/me?access_token=xxx

id与数据库中的UID不同。

0 个答案:

没有答案