簡體   English   中英

401未經omniauth-twitter授權

[英]401 Unauthorized with omniauth-twitter

我正在嘗試在Rails應用程序中使用omniauth-twitter,但我一開始就被困住了,無法弄清原因是什么。 我確實在dev.twitter.com中注冊了我的應用程序,並且得到了CONSUMER_KEY和CONSUMER_SECRET。 為了縮短測試時間,我將這兩個變量直接放在initializers / omniauth.rb中

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :twitter, "an_alphanumeric_code", "some_other_alphanumeric_code"
end

在application.html.erb布局中,我具有指向Twitter的鏈接登錄

<%= link_to "Sign in with Twitter", "auth/twitter" %>

但是當我單擊登錄時,而不是重定向到Twitter登錄,我得到了

401 Unauthorized

我已經檢查了SO上的其他問題,這應該不是計算機時間問題(我的Rails服務器的時間設置正確)。 我懷疑問題出在沒有公共IP和服務器名稱可用於測試。

是否有人能夠從本地127.0.0.1:3000 Rails服務器工作omniauth-twitter?

注冊應用程序時,您是否在應用程序中添加了Callback URL 如果缺少Callback URL ,則這是您將遇到的第一個問題。

Omniauth Twitter在本地Rails開發環境中運行良好。 檢查事項:

您的路由已正確設置用於回調,例如:

match "/auth/:provider/callback" => "sessions#create"

另請注意,link_to路徑中可能缺少前導斜線。 嘗試更改為:

<%= link_to "Sign in with Twitter", "/auth/twitter" %>

在我的Omniauth Twitter(應該與其他版本相同)的實現中,如果您已經登錄Twitter,則不會帶您進入登錄或確認屏幕。 它將您重定向回在dev.twitter.com中指定的URL。 因此,請檢查您的應用程序,看看它是否正在進入Twitter進行身份驗證(使用Firebug或Chrome開發者工具)。 那應該有助於找出您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM