【发布时间】:2020-01-06 20:51:14
【问题描述】:
我的应用有主应用的“用户”、“admin_users”和 /admin 命名空间。
当我以 admin_user 身份登录 /admin 命名空间并单击“注销”时 - Devise 将我从两个命名空间中注销。如何确保 Devise 仅将我从该命名空间中注销?
Routes.rb
devise_for :users, skip: :all
as :user do
get 'signin', to: 'devise/sessions#new', as: :new_user_session
post 'signin', to: 'devise/sessions#create', as: :user_session
delete 'signout', to: 'devise/sessions#destroy', as: :destroy_user_session
end
devise_for :admins, skip: :all
as :admin do
get 'admin/signin', to: 'admin/devise/sessions#new', as: :new_admin_session
post 'admin/signin', to: 'admin/devise/sessions#create', as: :admin_session
delete 'admin/signout', to: 'admin/devise/sessions#destroy', as: :destroy_admin_session
end
authenticate :admin do
namespace :admin do
...
end
end
【问题讨论】:
-
您是否在
config/initializers/devise.rb中设置了config.sign_out_all_scopes = false?默认为真。 -
@max 我怎么会错过呢?谢谢,效果很好!
标签: ruby-on-rails ruby authentication devise ruby-on-rails-5