0

我需要在管理站点创建一个功能,允许管理员强制注销任何用户。

我正在使用设计基于令牌的身份验证和尝试过的sign_out user方法,它不起作用。

4

1 回答 1

0

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

在您的任何控制器中添加一个新操作以设置force_logouttrue. 前任。:

# 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列。通常您可以session_controller.rb在操作中执行此操作create

于 2020-05-08T09:58:31.353 回答