2012-12-19 48 views
3

我剛剛更新了Omniauth從0.2.61.1.1以使用開發者策略。如果環境正在開發,我已將登錄鏈接指向/auth/developer,如果生產環境爲/auth/facebook找不到適用於omniauth開發者戰略的路線

Facebook的戰略仍然有效。使用開發人員策略時,鏈接將轉到內置的Omniauth登錄頁面,但單擊登錄時會返回404。此模型不使用Devise。

routes文件

get "/auth/:provider/callback" => "sessions#create" 
. 
. 
. 
get '*a', :to => 'errors#routing' 

Omniauth初始化

Rails.application.config.middleware.use OmniAuth::Builder do 
    provider :facebook, [etc.] 
    provider :developer if Rails.env.development? 
end 

登錄

Started GET "/auth/developer" for 127.0.0.1 at 2012-12-19 16:23:04 +0200 
Started POST "/auth/developer/callback" for 127.0.0.1 at 2012-12-19 16:23:10 +0200 
ActionController::RoutingError (No route matches "/auth/developer/callback") 
+0

您是否在初始化文件夾中有此文件? https://github.com/intridea/omniauth/blob/master/lib/omniauth/strategies/developer.rb – Ashitaka

+0

不需要。這不需要在初始化文件夾中。 – Simpleton

回答

2

就遇到了這個在今天一個新的rails 4應用程序,我目前正在使用此路線作爲解決方法:

match '/auth/:provider/callback', to: "sessions#create", via: [:get, :post] 
+0

輕鬆地忽略了omniauth gem使用'get'定義而不是'match'。按上述規則更改。 – carlosayam