rails4 从 omniauth 用户 link

rails4 get from omniauth user link

如何从omniauth.hash获取用户url?如果用户通过社交(twitter、facebook、vk 等)授权,我想将 link 带到他们的个人资料中,并将其作为 link 放在页面上。

我在 rails 使用 omniauth-facebook(和其他) 4. 我在 initializers/devise.rb 的配置很简单:

  config.omniauth :vkontakte, 'APP_ID', 'APP_SECRET'
  config.omniauth :facebook, 'APP_ID', 'APP_SECRET'
  config.omniauth :twitter, 'APP_ID', 'APP_SECRET'

使用此配置,我的回调非常差 auth.hash,在 yml 中它看起来是这样的:

provider: facebook
uid: '***************'
info: !ruby/hash:OmniAuth::AuthHash::InfoHash
  email: ****************
  name: ****************
  image: ************************
credentials: !ruby/hash:OmniAuth::AuthHash
  token: ****************
  expires_at: ******
  expires: *****
extra: !ruby/hash:OmniAuth::AuthHash
  raw_info: !ruby/hash:OmniAuth::AuthHash
    name: ****************
    email: ******************
    id: '*******************'

我用 * 代替实际值,这里没有用户 url。根据 https://github.com/mkdynamic/omniauth-facebook(滚动到底部)应该是:request.env['auth.hash'].extra.row_info.link 或 .info.urls.Facebook

如何获得url?

尝试 this configuration:

config.omniauth :facebook, 'APP_ID', 'APP_SECRET', info_fields: 'name,email,link'

别忘了重启应用程序。