Оформление Gem |Срок действия сеанса после закрытия браузера в Rails 5? - PullRequest
0 голосов
/ 20 марта 2019

Как автоматически выйти, когда пользователь закрывает браузер? Есть ли какие-либо изменения конфигурации в геме оформления, которые позволили бы это.

1 Ответ

0 голосов
/ 20 марта 2019

Создать файл cookie - создать или установить файл cookie на компьютере пользователя, имеющем файл cookie. имя, значение cookie и время, когда cookie должен быть удален автоматически (атрибут EXPIRES, это необязательно). Если это не указанный 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 на ноль. Однако, если он требует истечения срока действия, вы можете захотеть раскошелиться на камень и посмотреть, можно ли изменить частный API здесь в соответствии с вашими потребностями.

Если вы не хотите этого делать, вы можете создать охрану в Clearance. Когда пользователь входит в систему, установите свой собственный файл cookie без даты истечения срока действия. Когда пользователь закрывает браузер, он должен удалить ваш файл cookie. Затем, в вашей безопасности, когда проверка подлинности произойдет снова, вы сможете проверить свой собственный cookie-файл и (не обнаружив его) отклонить аутентификацию и перенаправить на sign_in.

...