【问题标题】:Devise - Logging out of one Namespace, logs out of all Namespaces设计 - 注销一个命名空间,注销所有命名空间
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-11-19
    • 2021-01-03
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多