2012-12-19 25 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