0

Railsアプリでomniauth-twitterを使おうとしていますが、最初は行き詰まっていて、原因がわかりません。アプリケーションをdev.twitter.comに登録し、CONSUMER_KEYとCONSUMER_SECRETを取得しました。テスト時間を短縮するために、これら2つの変数を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:3000Railsサーバーからomniauth-twitterを動作させることができた人はいますか?

4

2 に答える 2

5

Callback URLアプリの登録時にアプリに入れましたか?が欠落している場合、Callback URLこれが最初に発生する問題です。

于 2013-01-08T10:39:11.397 に答える
1

Omniauth Twitterは、ローカルRails開発環境で正常に機能します。チェックすること:

ルートは、コールバック用に正しく設定されています。たとえば、次のようになります。

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

また、link_toのパスで先頭のスラッシュが欠落している可能性があることに注意してください。次のように変更してみてください:

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

私のOmniauthTwitterの実装(他のTwitterと同じである必要があります)では、既にTwitterにサインインしている場合、ログイン画面または確認画面に移動しません。dev.twitter.comで指定したURLにリダイレクトされます。そのため、アプリをチェックして、認証のためにTwitterに進んでいるかどうかを確認します(FirebugまたはChrome開発ツールを使用します)。それはあなたの問題を追跡するのに役立つはずです。

于 2013-01-08T13:45:26.720 に答える