【问题标题】:Rails - How to disable access to localhost:3000/users/sign_in on Devise gem?Rails - 如何在 Devise gem 上禁用对 localhost:3000/users/sign_in 的访问?
【发布时间】:2014-07-08 02:10:18
【问题描述】:
我这样设置我的 route.rb:
devise_scope :user do
get "/login" => "devise/sessions#new"
end
现在我可以在 localhost:3000/login 上输入,然后在 sign_in 上输入。
但是如果我在 localhost:3000/users/sign_in 上输入仍然有效...如何禁用它?
【问题讨论】:
标签:
ruby-on-rails
ruby
login
devise
【解决方案1】:
来自设计documentation:
请注意,您可以跳过所有会话路由并仅定义您自己的路由
使用如下跳过选项:
devise_for :users, :skip => [:sessions]
as :user do
get 'signin' => 'devise/sessions#new', :as => :new_user_session
post 'signin' => 'devise/sessions#create', :as => :user_session
delete 'signout' => 'devise/sessions#destroy', :as => :destroy_user_session
end
这样 :authenticate_user!和其他助手将重定向
用户访问您定义的正确自定义页面。