我正在使用Devise omniauth通过Facebook验证用户。
devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" }
效果很好,但我想限制用户访问“http:// app / users / sign_in”页面
我可以按以下方式更改路线:
devise_scope :user do
match '/users/auth/facebook/callback' => 'users/omniauth_callbacks#facebook'
end
但是,如何重定向用户不要从具有
的控制器获取令人不快的消息before_filter :authenticate_user!
我想要的是用户只使用devise_scope匹配网址,否则将它们重定向到某个默认的'application #index'路由。
答案 0 :(得分:1)
当使用omniauth而不使用database_authenticatable时,最新的设计版本将始终将您重定向到root_url页面。您可以通过生成一个名为“new_user_session”的路由来指定您的“application#index”来自定义。