@marq

Laravel как сбросить сессию определенного пользователя?

в своем приложении меняю пароль опред. пользователям, но как сразу им сбросить сессию при смене пароля?
  • Вопрос задан
  • 293 просмотра
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега Laravel
Сессия - это файл на диске (или строка в БД или значение в key-value хранилище, это не важно в данном контексте), в котором записана какая-то информация (например, идентификатор пользователя).
У этого файла есть уникальное имя - это идентификатор сессии.
Идентификатор сессии сохраняется в куках и присылается клиентом. По нему находится сессия, в ней находится идентификатор пользователя.

Чтобы сбросить аутентификацию нужно либо удалить куку, либо удалить файл сессии, либо в коде обработать первую попытку входа после смены пароля и не считать такого пользователя аутентифицированным.

Удалить куку вы не сможете (технически - сможете, но это будет по сути третий вариант решения); чтобы удалить файл сессии вам нужно знать её идентификатор; а чтобы обработать попытку входа, нужно понимать, что пароль был изменён.

Следовательно, вы можете:
  • Либо где-то хранить связку идентификатора пользователя с идентификатором сессии, чтобы можно было удалить файл.
  • Либо хранить флаг необходимости разлогинить пользователя при следующей попытке запроса и доработать модуль аутентификации, чтобы этот флаг учитывался.
Ответ написан
Комментировать
delphinpro
@delphinpro Куратор тега Laravel
frontend developer
Если храните сессии в БД, то можно легко почистить записи по user_id.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы