我正在使用Rails 6.0.0,Devise 4.7.1,和,omniauth-facebook 5.0.0。
omniauth-twitter成功地与omniauth-twitter合作(我注意到目前使用的是oauth 1.0,而不是omniauth-twitter),它也能让杂食通过使用oauth 2.0的omniauth-google-oauth2成功地与谷歌合作。omniauth-facebook上的运气不一样(碰巧使用了omniauth-facebookinitalizers/devise.rb文件是主配置的位置,以便为每个提供程序指定provider,然后指定app_id和app_secret。下面是我所拥有的(当然,有一个用于真实app_id和秘密的占位符):
config.omniauth :facebook, "my-app-id", "my-app-secret-key", scope: "email"
config.omniauth :twitter, "my-app-id", "my-key"
config.omniauth :google_oauth2, "my-client-id", "my-client-seceret"再一次,它在twitter和google上运行得很好。但是当我点击“使用facebook登录”的链接时,它会显示在facebook上:

我很困惑,因为我知道我正确地进入了app ID。应用程序的状态是"Live“,而不是"Development”(它要求我提供隐私策略URL)。
既然omniauth-twitter起作用了,我想知道到底是供应商端(facebook)出了什么问题,还是omniauth-facebook创业板出了什么问题?当然:我永远不会排除我错过了一些显而易见的东西。
我正在为我的应用程序使用https (为了使用facebook的这项服务,https现在似乎是必需的),所以这也不是问题。
发布于 2020-02-12 14:12:45
我可以通过简单的更改来解决这个问题:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, ENV['APP ID'], ENV['APP SECRET']
end
至
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, 'APP ID','APP SECRET'
end
https://stackoverflow.com/questions/58794651
复制相似问题