使用Omniauth时,从提供程序方法更改Devise默认路由以在控制器中创建方法

时间:2013-03-22 02:20:42

标签: ruby-on-rails ruby devise omniauth

我正在尝试使用Devise和Omniauth允许用户使用Rails 3.2应用登录多个提供商。我得到了它的工作,但只有它在控制器中的twitter,facebook或tumblr方法,我希望所有提供商转到创建方法。这就是我有这样做的路线:匹配'/ auth /:provider / callback'=> '认证#创建'

  resources :authentications

  match '/auth/:provider/callback' => 'authentications#create'
  devise_for :users, path_names: {sign_in: "login", sign_out: "logout"},
    controllers: {omniauth_callbacks: "authentications"}

  root to: 'authentications#index'

我的佣金路线显示:

 user_omniauth_authorize        /users/auth/:provider(.:format)        authentications#passthru {:provider=>/twitter|facebook|tumblr/}
  user_omniauth_callback        /users/auth/:action/callback(.:format) authentications#(?-mix:twitter|facebook|tumblr)

我希望user_omni_auth_callback路由到身份验证#create而不是特定的提供者。使用当前的设置,我得到“无法找到AuthenticationsController的动作'twitter',因为我没有包含它。最好的方法是什么?

0 个答案:

没有答案