我看过很多关于此类错误的帖子,但似乎没有任何我能找到的适用于我的案例。
这是我从 Facebook 得到的错误:
Error validating verification code. Please make sure your redirect_uri is identical to the one you used in the OAuth dialog request
这是我设置的网站网址:http: //landmark.dev/
这是我定义的重定向 URI:http: //landmark.dev/auth/facebook/callback
这是我的omniauth.rb(已清理)
OmniAuth.config.full_host = "http://landmark.dev"
Rails.application.config.middleware.use OmniAuth::Builder do
provider :twitter, 'xxx', 'xxx'
provider :facebook, 'xxx', 'xxx', :scope => 'email'
end
OmniAuth.config.on_failure do |env|
[200, {}, [env['omniauth.error'].inspect]]
end
这是我的 routes.rb 回调:
match 'auth/:provider/callback', to: 'sessions#create', via: :all
顺便说一句,Twitter 工作得很好——只是 facebook 无法连接。我已经为此奋斗了 3 天,并试图找到解决方案。在此先感谢您的帮助。
更新:在等待答案以帮助解决问题时,我尝试添加omniauth-google-oauth2,因为通过google+进行身份验证也是该项目计划的一部分。看来我从谷歌得到了同样的错误:
"error" : "redirect_uri_mismatch"
我认为这表明我这边存在一些问题,但我不知道它可能是什么。另一个奇怪的事情是 Twitter 仍然可以正常工作。