【问题标题】:Close the session in devise在设计中关闭会话
【发布时间】:2016-09-23 16:05:30
【问题描述】:

用户成功登录后如何关闭会话?

当用户成功登录时,他正在执行他的操作,但在后端管理员停用了用户。那时关闭用户会话并重定向到登录页面。

这在 Rails 设计中可能吗?

【问题讨论】:

    标签: ruby-on-rails devise


    【解决方案1】:

    您需要在应用程序控制器上设置 before_action,例如:

    before_action :check_inactive_user, if: :current_user
    
    def check_inactive_user
      if current_user.inactive?
        current_user.sign_out
        redirect_to root_path, flash: {notice: 'Your user is inactive'}
      end
    end
    

    【讨论】:

    • 感谢 arieljuod 为我服务
    【解决方案2】:

    current_user 使用会话,因此您可以在任何控制器操作中执行 reset_session 以将它们带回登录屏幕。

    【讨论】:

    • 你是说在每个控制器中使用前置过滤器对吧?
    • 我试过 reset_session 工作正常,但如果在同一个浏览器中打开管理会话,管理会话也会重置
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    相关资源
    最近更新 更多