如何在用户关闭浏览器时自动注销?在clearance gem中是否有任何配置更改可以实现这一点。
发布于 2019-03-21 02:34:04
创建Cookie -在用户计算机上创建或设置cookie,其中包含cookie名称、Cookie值和应自动删除cookie的时间(属性过期,这是可选的)。如果未指定此项,则cookie称为会话cookie,当用户的会话结束时,即关闭浏览器时,该cookie将过期(被删除
Source
换句话说,如果您没有为cookie设置过期日期,那么它应该在浏览器关闭时“过期”。
我从未使用过Clearance,但ReadMe在/config/initializers/clearance.rb中显示了此配置选项:
Clearance.configure do |config|
config.allow_sign_up = true
config.cookie_domain = ".example.com"
config.cookie_expiration = lambda { |cookies| 1.year.from_now.utc }
config.cookie_name = "remember_token"
config.cookie_path = "/"
config.routes = true
config.httponly = false
config.mailer_sender = "reply@example.com"
config.password_strategy = Clearance::PasswordStrategies::BCrypt
config.redirect_url = "/"
config.rotate_csrf_on_sign_in = false
config.secure_cookie = false
config.sign_in_guards = []
config.user_model = User
end如果我是你,我会尝试将cookie_expiration设置为零。但是,如果需要过期,您可能需要派生gem,并查看是否可以根据需要修改私有接口here。
如果你不想这样做,你可以在清除中创建一个守卫。当用户登录时,设置您自己的cookie,没有过期日期。当用户关闭浏览器时,应该会删除您的自定义cookie。然后,在您的保护下,当身份验证再次发生时,您应该能够检查您的自定义cookie,并(在找不到它时)拒绝身份验证并重定向到sign_in。
https://stackoverflow.com/questions/55267563
复制相似问题