在管理员和用户登录同一页面时,设计注销出现问题
例如,我在Chrome浏览器中以用户身份登录并在同一浏览器中以管理员身份登录,当我退出管理会话时,用户会话将自动注销并重定向到登录页面。
当我尝试以用户身份登录时,它已成功登录并进入管理员登录页面并尝试登录显示 -
ActionController::InvalidAuthenticityToken
答案 0 :(得分:0)
我今天遇到了同样的问题。为了以防万一,我想分享一个我发现的解决方案。在设备仓库中阅读此问题后我得到了这个想法:https://github.com/plataformatec/devise/issues/3461
class Identities::SessionsController < Devise::SessionsController
rescue_from ActionController::InvalidAuthenticityToken, with: :force_log_out
#...
def force_log_out
return unless params[:action] == 'destroy'
puts "rescued ActionController::InvalidAuthenticityToken"
puts "force log out and redirect back to '/'"
sign_out_all_scopes
redirect_to '/'
end
# ...
我不知道这是否是最佳解决方案。如果有人有其他解决方案,我想学习它们。