gpt4 book ai didi

ruby-on-rails - rails : sign out logged in user on event

转载 作者:行者123 更新时间:2023-12-04 06:29:51 25 4
gpt4 key购买 nike

我正在使用 Rail3 和 Devise gem 。当您需要锁定用户登录时,它做得很好。

但它仅适用于新的登录尝试。
如果他已经登录 - 它不会立即将他注销。

这是典型的用例:

给定管理员用户
当检测到某个用户的可疑事件时,他会用 malicious_user.lock('locking-reason') 锁定它

% can config/initializers/session_store.rb
AppFoo::Application.config.session_store :cookie_store, :key => '_foo_session'

最佳答案

鉴于 HTTP 的无状态性,您不能立即注销用户,因为您需要等到他们向您的服务器发出另一个请求。我想你可以通过推送服务来解决这个问题,但这会有点矫枉过正。

我的解决方案是将该人添加到黑名单,然后在他们尝试访问仅供登录用户使用的部分时检查他们是否在黑名单中。这将使他们无法登录,直到您确定他们的事件是否可疑。

示例:

用户涉嫌不可容忍的事件

管理员想检查一下,所以他们暂时将用户添加到黑名单。

用户在添加到黑名单时单击他们当前所在页面的区域。

代码检查登录状态和列入黑名单的用户。

由于用户被列入黑名单,他们被告知需要登录才能访问内容

一旦用户尝试再次登录,您可以通知他们他们的帐户已被暂时禁用(或者您可以在上一步中执行此操作)。

关于ruby-on-rails - rails : sign out logged in user on event,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5553234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com