Devise Oauth推特:OAuth ::未经授权禁止403

时间:2018-05-28 07:02:54

标签: ruby-on-rails omniauth omniauth-twitter

我正在尝试使用Devise实现Oauth Twitter 我在twitter上创建了应用程序 我已将回调网址设置为: http://localhost:3000
我已将此添加到config \ initializers \ devise.rb

  config.omniauth :twitter, "key", "key secret"

使用Twitter登录会自动显示在此路线:/ users / sign_up / 但点击它我得到这个错误

密钥和密钥是正确的

我也尝试删除并创建新应用。

我无法解决问题

非常感谢帮助

enter image description here

Here它说需要设置https。 所以我按照This进行了设置。但得到同样的错误

5 个答案:

答案 0 :(得分:7)

事实证明,在Twitter应用设置中,回拨网址锁定默认设置为。将其切换为修复错误。

Thanks to kubido for helping me out to close the issue on github

答案 1 :(得分:3)

您可以尝试在https://apps.twitter.com/

的回拨网址中添加这些内容

差不多一个小时后为我工作了!

登录失败后我收到了这些网址。我检查了request_options。一种方法是使用BetterErrors gem。

enter image description here

答案 2 :(得分:2)

我一直面临着同样的问题, 最终,我通过添加以下回调对其进行了修复,

http://127.0.0.1:3000/auth/twitter/callback
http://127.0.0.1/
http://127.0.0.1/auth/twitter/callback
http://localhost:3000/auth/twitter/callback

它就像一种魅力, enter image description here

答案 3 :(得分:0)

好像Twitter的localhost / 127.0.0.1回调有问题,但是使用ngrok创建公共URL来公开我的本地服务器可以解决此问题。

启动ngrok:

ngrok http 3000

使用ngrok创建的HTTPS URL更新Twitter应用程序回调URL。

示例:

https://4e1ab946.ngrok.io/auth/twitter/callback

在端口3000上启动Rails服务器,然后将浏览器指向:

https://4e1ab946.ngrok.io/auth/twitter

现在应该工作。

答案 4 :(得分:0)

您需要将回调网址设置为:“您的网址” / auth / twitter / callback