使用devise强制注销current_user以外的用户,可以通过以下步骤实现:
class UsersController < ApplicationController
def force_logout
user = User.find(params[:id])
sign_out(user) if user.present?
redirect_to root_path, notice: "用户已注销"
end
end
Rails.application.routes.draw do
# ...
resources :users do
member do
get 'force_logout'
end
end
# ...
end
<%= link_to '强制注销', force_logout_user_path(current_user), method: :get %>
before_action :authenticate_user!, only: [:force_logout]
这样,当用户点击强制注销链接时,会调用"force_logout" action,该action会查找指定的用户并注销该用户。然后,用户会被重定向到指定的页面,并显示相应的提示信息。
请注意,以上步骤是基于devise的实现方式,如果你使用其他身份验证库或自定义身份验证逻辑,可能会有所不同。此外,如果你的应用中有其他复杂的业务逻辑或安全需求,可能需要进一步定制和调整。
领取专属 10元无门槛券
手把手带您无忧上云