Rails 中 omniauth-facebook 的验证错误
Verification Error with omniauth-facebook in Rails
我看过很多关于此类错误的帖子,但似乎没有一个适合我的情况。
这是我从 Facebook 返回的错误:
Error validating verification code. Please make sure your redirect_uri is identical to the one you used in the OAuth dialog request
这是我设置的网站URL: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 天,并试图找到解决方案。预先感谢您的帮助。
更新: 在等待对此问题的回答以帮助解决问题时,我尝试通过 [=39= 添加 omniauth-google-oauth2 作为身份验证]+ 也是该项目计划的一部分。看来我从 Google:
得到了同样的错误
"error" : "redirect_uri_mismatch"
我认为这表明我这边有问题,但我不知道它可能是什么。另一件奇怪的事情是 Twitter 仍然运行良好。
如果您在本地机器上尝试此操作(我猜您这样做是因为我认为此时 .dev 域不可用,您应该使用像 POW 这样的服务器)。问题是 Facebook 无法访问您的机器。
您可以将 localtunnel http://localtunnel.me/ 之类的解决方案用于开发目的或尝试使用 localhost,我认为 localhost 过去有效,但我现在不确定。
在 omniauth-oauth2 的最后更新中引入了一个错误 gem。 Dowgrande 你的 gem 版本,它应该可以工作一段时间。
gem 'omniauth-oauth2', '~> 1.3.1'
你可以在这里看到讨论
我看过很多关于此类错误的帖子,但似乎没有一个适合我的情况。
这是我从 Facebook 返回的错误:
Error validating verification code. Please make sure your redirect_uri is identical to the one you used in the OAuth dialog request
这是我设置的网站URL: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 天,并试图找到解决方案。预先感谢您的帮助。
更新: 在等待对此问题的回答以帮助解决问题时,我尝试通过 [=39= 添加 omniauth-google-oauth2 作为身份验证]+ 也是该项目计划的一部分。看来我从 Google:
得到了同样的错误"error" : "redirect_uri_mismatch"
我认为这表明我这边有问题,但我不知道它可能是什么。另一件奇怪的事情是 Twitter 仍然运行良好。
如果您在本地机器上尝试此操作(我猜您这样做是因为我认为此时 .dev 域不可用,您应该使用像 POW 这样的服务器)。问题是 Facebook 无法访问您的机器。
您可以将 localtunnel http://localtunnel.me/ 之类的解决方案用于开发目的或尝试使用 localhost,我认为 localhost 过去有效,但我现在不确定。
在 omniauth-oauth2 的最后更新中引入了一个错误 gem。 Dowgrande 你的 gem 版本,它应该可以工作一段时间。
gem 'omniauth-oauth2', '~> 1.3.1'
你可以在这里看到讨论