2

私はこの問題に7時間取り組んできましたが、まだわかりません。多分あなたの一人が私を助けることができます。

Omniauth を使用する Devise 1.2rc の OAuth 機能を Rails アプリケーションに統合しようとしているだけです。

  • 私はDeviseのこのチュートリアルを使用しています:

https://github.com/plataformatec/devise/wiki/OmniAuth%3A-概要

  • 私は彼らがあなたに言うことはすべてやりました...

  • はい、devise.rb に次の行を追加しました。

config.omniauth :facebook, "APP ID", "APP SECRET"

  • :omniauthable をユーザー モデルに追加し、チュートリアルで説明されているようにクラス関数も追加しました。

  • omn​​iauth_callbacks コントローラーとコールバック関数を実装し、routes.rb で omniauth_callbacks コントローラーを指定しました。

  • 「rake middleware」を実行すると、Omniauth ミドルウェアが一覧表示されます。

use OmniAuth::Strategies::Facebook

  • Devise は Git リポジトリの master ブランチから直接インストールしたので最新です

  • 最新バージョンの Omniauth 1.2.0.beta5 をインストールしました。私のGemfileには次のように書かれています:

gem 'oa-oauth', '0.2.0.beta5', :require => 'omniauth/oauth'

  • 明らかにサーバーを再起動しました

  • ただし、この URL をリクエストしようとすると、次のようになります。

http://localhost:3000/auth/facebook

it simply says

ActionController::RoutingError (No route matches "/auth/facebook"):

/user/auth/facebook も機能しません。

残念ながら、Omniauth と Devise の gem 全体を分解してコードのすべての行を理解する時間はありません。

4

2 に答える 2

2

問題は解決しました。どうやらDeviseの問題だったようです。私はそれをGithubに問題として投稿し、ソースで修正しました。最新の Devise マスター ブランチでは動作するようになりました。

于 2011-03-14T19:48:26.103 に答える
2

config/initializers/omniauth.rbこの問題を修正しようとして数時間後、私はファイルにいることに気付きました.gitignore(恥ずかしいです)。

.gitignore リストから omniauth.rb をまだ削除していない場合は削除してください

于 2012-02-21T08:48:28.157 に答える