我正在使用Rails 6.0.0
,Devise 4.7.1
和和omniauth-facebook 5.0.0
。
- 我能够通过
omniauth-twitter
使omniauth在Twitter上成功工作(我注意到当前恰好使用oauth 1.0
而不是oauth 2.0
)。 - 我还能够通过使用
omniauth-google-oauth2
的{{1}}来使omniauth在google上成功使用。 - 我与
oauth 2.0
的运气不同(碰巧使用omniauth-facebook
)。
在oauth 2.0
文件中是主要配置,以便为每个提供程序指定initalizers/devise.rb
,然后指定provider
和app_id
。这是我所拥有的(当然还有一个占位符,用于表示真实的app_id和secret):
app_secret
同样,它在Twitter和Google上也可以正常工作。但是,当我单击“使用Facebook登录”链接时,它会在Facebook上显示:
我很沮丧,因为我知道自己正确输入了config.omniauth :facebook,"my-app-id","my-app-secret-key",scope: "email"
config.omniauth :twitter,"my-key"
config.omniauth :google_oauth2,"my-client-id","my-client-seceret"
。该应用程序的状态为“实时”,而不是“开发(要求我提供隐私权政策网址)”。
由于app ID
可以正常工作,这使我想知道提供者端(facebook)是否出了问题,或者omniauth-twitter
gem出了问题?当然:我永远不会排除我遗漏了明显的东西。
我正在为我的应用程序使用omniauth-facebook
(现在看来必须要使用https
才能使用来自Facebook的此服务),因此也不是问题。