当用户关闭浏览器时,我该如何自动登录?清除GEM中是否有任何配置更改可以启用此。
创建一个cookie-在带有cookie的用户计算机上创建或设置cookie 名称,cookie值以及饼干应删除的时间 自动(到期,这是可选的)。如果不是 指定的cookie称为会话cookie,它已过期(获取 删除)当用户的会话结束时,即关闭浏览器时
来源
换句话说,如果您没有在cookie上设置到期日期,则在关闭浏览器时应该"到期"。
我从未使用过清关,但是读书我在/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设置为无。但是,如果需要到期,您可能需要分叉宝石,看看是否可以根据您的需求更改此处的私有API。
如果您不想这样做,则可以在清除中创建警卫。当用户登录时,请在没有到期日期的情况下设置自己的cookie。当用户关闭浏览器时,应该删除您的自定义cookie。然后,在警卫中,当身份验证再次发生时,您应该能够检查自定义cookie,并且(未找到)拒绝auth并将其重定向到sign_in。