当用户关闭浏览器时,如何自动退出?清除gem中是否有任何配置更改可以启用此功能。
答案 0 :(得分:0)
创建Cookie-在具有Cookie的用户计算机上创建或设置Cookie 名称,cookie值以及应该删除cookie的时间 自动(EXPIRES属性,这是可选的)。如果不是这样 指定该cookie称为会话cookie,并且它过期(获取 删除)在用户会话结束时(即浏览器关闭时)
换句话说,如果您没有在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设置为nil。但是,如果它需要到期,则可能需要派出gem,看看是否可以根据需要更改私有API here。
如果您不想这样做,可以在Clearance中创建一个守卫。当用户登录时,请设置您自己的cookie,并且没有有效期。当用户关闭浏览器时,应删除您的自定义cookie。然后,在警卫人员的保护下,当再次进行身份验证时,您应该能够检查自定义cookie,并(一旦找不到它)拒绝身份验证并重定向到sign_in。