在我的web应用程序中,用户登录后会创建一个新会话,因此直到他关闭浏览器后,他才会保持登录状态。管理员想禁止浏览器仍处于打开状态的用户时出现此问题。即使用户被禁止并且无法再登录,他仍然保持登录状态,直到他关闭浏览器或手动注销为止。这绝对应该修复。ROR用户身份验证
是否可以将验证方法添加到每个控制器的每个动作?当然,我的意思是一个聪明的方式 - 不复制/粘贴100次。
在我的web应用程序中,用户登录后会创建一个新会话,因此直到他关闭浏览器后,他才会保持登录状态。管理员想禁止浏览器仍处于打开状态的用户时出现此问题。即使用户被禁止并且无法再登录,他仍然保持登录状态,直到他关闭浏览器或手动注销为止。这绝对应该修复。ROR用户身份验证
是否可以将验证方法添加到每个控制器的每个动作?当然,我的意思是一个聪明的方式 - 不复制/粘贴100次。
以下内容添加到您的应用程序控制器:
before_filter :sign_out_banned_user
def sign_out_banned_user
if current_user.banned?
session[:current_user_id] = nil
redirect_to root_path, :notice => "You are banned"
return false
end
end
你能解释为什么返回false? – NARKOZ
你可以尝试去掉'return false'。如果没有'return false',在'redirect_to'之后代码将会继续,并且将会继续执行。然后会有重复的'redirect_to',因为你进入了操作。 – PeterWong