gpt4 book ai didi

ruby-on-rails - 为 Rails App 中的某些用户设计强制注销

转载 作者:行者123 更新时间:2023-12-03 09:11:29 24 4
gpt4 key购买 nike

是否可以通过 Devise 强制某些用户注销。

在我的设置中,我使用 Rails 4.1.15 和 Devise 1.5.4。 session 保存在数据库中,并且与用户 ID 没有直接映射。是否有一种设计方法可以针对某些用户(不是全部)注销。

我尝试重置密码作为代理,该密码会立即注销,但并非总是如此。

user_obj.update_attributes(:password => "some_random_string")

最佳答案

我可以向您提出下一个解决方案。

admin 添加一个名为 force_logout:boolean 的新列

在任何 Controller 中添加一个新操作,将 force_logout 设置为 true。例如:

# in admins_controller.rb

def force_logout
admin = Admin.find(params[:id])
admin.update_column(:force_logout, true)
redirect_to :back
end

application_controller.rb中添加before_action以在force_logouttrue时注销用户

before_action :check_force_logout

def check_force_logout
if current_user && current_user.force_logout?
current_user.update_column(:force_logout, false)
sign_out(current_user)
end
end

您也需要在管理员登录后重置force_logout列。通常您可以在create操作中session_controller.rb执行此操作。

关于ruby-on-rails - 为 Rails App 中的某些用户设计强制注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42037709/

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