2012-08-02 96 views
4

我正在尝试使用Devise/OmniAuth为最新的RailsCast设置Twitter登录。我已经注册了Twitter开发者应用程序,使用的回调网址为:myiphere:port/users/auth/twitterDevise/OmniAuth/Twitter - OAuth :: Unauthorized(401)

我在RailsCast上关注了一切,但每次点击Sign In With Twitter链接时,我立即得到OAuth::Unauthorized 401 Unauthorized on the myiphere:port/users/auth/twitter page

我想我已经使用export TWITTER_CONSUMER_KEY=MYKEYINSERTEDHERE export TWITTWR_CONSUMER_SECRET=MYSECRETINSERTEDHERE rails server正确定义了密钥。我已经尝试了大多数可以在互联网上找到的解决方案,但都无济于事。几乎所有的答案都是一旦登录后返回到他们的网站,我无法得到任何类型的Twitter屏幕,只是/users/auth/twitter页面上的401错误。

回答

17

我有同样的问题;在我的情况下,我的API密钥设置正确,但未在Twitter设置中的“设置”选项卡下的https://dev.twitter.com/apps/中设置回调URL。

奇怪的是,似乎并没有回调URL需要指向任何有用的地方; Twitter显然只是用它的存在作为某种信号。

omniauth-twitter提供的调试信息留下了一些需要的东西。

+0

陶然成同样的问题,感谢。 – wyclin 2013-07-12 01:36:08

+0

奇怪但真实。 – scaryguy 2014-04-26 15:53:30

1

在这里回答我自己的问题,似乎我只是需要添加实际的密钥来代替TWITTER_CONSUMER_KEYTWITTER_CONSUMER_SECRET,而不是我最初尝试添加它们的方式。我也从每一个中删除了ENV[],我认为这可能有所帮助。

0

对我来说,问题是,“允许此应用程序可用于登录与Twitter”未选中(在应用页面>设置选项卡)

2

我得到它的工作从初始DEVISE.RB去掉括号和ENV:

config.omniauth :twitter, "APP_ID", "APP_SECRET" 

我的回调在DEV Twitter的设置规定:

​​

在routes.rb中

devise_for :users, controllers: {omniauth_callbacks: "omniauth_callbacks"} 

我的登录链接:

<%= link_to "Log in with Twitter", user_omniauth_authorize_path(:twitter) %> 
相关问题