2012-08-02 136 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) %> 
相關問題