Devise - 注销一个命名空间,注销所有命名空间
Devise - Logging out of one Namespace, logs out of all Namespaces
我的应用有 "users" 作为主应用,"admin_users" 和 /admin 命名空间。
当我以 admin_user 身份登录 /admin 命名空间并单击 "log out" - 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
。
# Set this configuration to false if you want /users/sign_out to sign out
# only the current scope. By default, Devise signs out all scopes.
config.sign_out_all_scopes = false
我的应用有 "users" 作为主应用,"admin_users" 和 /admin 命名空间。
当我以 admin_user 身份登录 /admin 命名空间并单击 "log out" - 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
。
# Set this configuration to false if you want /users/sign_out to sign out
# only the current scope. By default, Devise signs out all scopes.
config.sign_out_all_scopes = false