我们刚刚从1.9.3将ruby版本更新为2.0。据我所知,我们没有在升级中更新omniauth omniauth-facebook或oauth。然而升级打破了facebook登录。查看日志,我没有看到在omniauth哈希中发回的电子邮件。
这是我的初始化程序,它加载我的yml文件,我在其中定义了秘密和诸如此类的东西。
omniauth.rb初始化程序 OmniAuthConfig类 class<<自 def load(file ='omniauth.yml') configuration_file = File.join(Rails.root,'config',file)
if File.exists?(configuration_file)
File.open(configuration_file) do |configuration|
configuration = YAML.load(configuration)[Rails.env.to_sym]
configuration.each do |key, value|
cattr_accessor(key)
send("#{key}=", value)
end
end
end
end
end
end
OmniAuthConfig.load
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook,
OmniAuthConfig.facebook_api_key,
OmniAuthConfig.facebook_api_secret,
scope: 'email',
client_options: { ssl: { ca_file: "/etc/ssl/certs/ca-certificates.crt" } }
end
截尾日志:
--- !ruby/hash:OmniAuth::AuthHash
provider: facebook
uid:
info: !ruby/hash:OmniAuth::AuthHash::InfoHash
image: http://graph.facebook.com//picture?type=square
credentials: !ruby/hash:OmniAuth::AuthHash
token: HUGE_TOKEN_STRING
expires_at: 1485547306
expires: true
extra: !ruby/hash:OmniAuth::AuthHash
raw_info: !binary |-
HASH_THINGY