【问题标题】:Access Sorcery oauth response data访问 Sorcery oauth 响应数据
【发布时间】:2016-04-07 01:47:20
【问题描述】:

我正在使用带有外部子模块的 Sorcery gem。出于某种原因,我没有收到来自 Facebook 的电子邮件,而且我很确定我的配置正确。我正在尝试进一步解决此问题,但我无法弄清楚如何读取通过 oauth 返回的数据以验证故障所在。我在哪里可以窥探并阅读此信息?谢谢!

这是我的魔法配置。

Rails.application.config.sorcery.submodules = [:external]

Rails.application.config.sorcery.configure do |config|

  config.external_providers = [:facebook, :google]

  config.facebook.key = "#{Rails.application.secrets.sorcery_facebook_key}"
  config.facebook.secret = "#{Rails.application.secrets.sorcery_facebook_secret}"
  config.facebook.callback_url = "#{Rails.application.secrets.sorcery_facebook_callback_url}"
  config.facebook.user_info_path = "me?fields=email,first_name,last_name"
  config.facebook.user_info_mapping = {:email => "email"}
  config.facebook.access_permissions = ["email"]
  config.facebook.scope = "email"
  config.facebook.display = "popup"
  config.facebook.api_version = "v2.5"

  config.user_config do |user|
    user.authentications_class = Authentication
  end

  config.user_class = User
end

【问题讨论】:

    标签: ruby-on-rails facebook oauth sorcery


    【解决方案1】:

    嗯,从技术上讲,这回答了如何找出返回的内容的问题。

    在您的 oauth 控制器中,如果您调用 access_token.get('me?fields=email') 或您想要的任何字段,您将收到带有 URL 字段集的响应。将该 URL 复制到浏览器中,您将获得数据的 JSON 列表。就我而言,我没有收到任何电子邮件,但我可以返回名字、姓氏、名字。不太清楚为什么我仍然无法收到电子邮件,但希望这有助于将来有人解决问题。

    如果您有可用的access_token,另一种方法是自己构建 URL。

    https://graph.facebook.com/me?access_token=<access token goes here>&fields=first_name,last_name,email

    可以使用来自 oauth 控制器的 @access_token.token 检索访问令牌。

    更新

    太傻了……我的配置是正确的,但显然自从我进行了正确的更正以来,我从未退出过 Facebook。注销并再次连接 oauth 似乎解决了问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-13
      • 2016-09-08
      • 2023-03-04
      • 1970-01-01
      • 2014-01-08
      • 1970-01-01
      相关资源
      最近更新 更多