2011-03-10 91 views
2

我一直在這個問題上工作了7個小時,而且我仍然不知道。也許你們中的一個可以幫助我。Omniauth/Devise/Facebook:Auth路由不被識別

我只是試圖將使用Omniauth的Devise 1.2rc的OAuth功能集成到我的Rails應用程序中。

  • 我一直在使用本教程由設計:

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

  • 我所做的一切,他們會告訴你......

  • 是的,我有添加了以下行到我的devise.rb:

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

  • 我已經加入:omniauthable到我的用戶模型,以及在本教程中介紹的類功能

  • 我已經實現了omniauth_callbacks控制器,以及回調函數,並且我在我的routes.rb中指定了omniauth_callbacks控制器。當我運行「rake中間件」時,它列出了Omniauth中間件:

use OmniAuth::Strategies::Facebook

  • 我已經直接從Git的回購,主支裝設計,所以它的最新

  • 我已經安裝了Omniauth 1.2.0.beta5,這是最新版本。在我的Gemfile它說:

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

  • 我已經重新啓動服務器,顯然

  • 然而,當我嘗試請求這個網址:

http://localhost:3000/auth/facebook

it simply says

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

/user/auth/facebook也不起作用。

由於我不幸沒有時間分解整個Omniauth和Devise的寶石,並理解其中的每一行代碼,也許你們中的一個可以告訴我問題可能是什麼。

+0

你試過/用戶/認證/ Facebook的 – 2011-03-12 00:08:20

+0

是的,也不行刪除omniauth.rb。甚至不存在任何路線 – 2011-03-12 09:44:47

回答

2

問題現在解決了。顯然這是Devise的問題。我把它作爲一個問題發佈在他們的Github上,並且將它們固定在源代碼中。在最新的Devise master分支中,它現在可以工作。

2

經過幾個小時試圖解決這個問題,我意識到我config/initializers/omniauth.rb.gitignore文件(羞恥我)。

所以從列表的.gitignore如果您尚未

+1

當使用omniauthable模塊時,沒有'config/initializers/omniauth.rb'。 – Robin 2012-05-29 17:42:05

+0

我使用一個來保存api鍵,但肯定沒有必要 – jstnno 2012-06-05 03:21:39