Звичайна сесія закінчується через SESSION_LIFETIME хвилин бездіяльності. «Запам'ятати мене» дозволяє лишатися в системі довше - без повторного входу.
Auth::attempt($credentials, remember: true);
Як це влаштовано: Laravel генерує випадковий токен, зберігає його в колонці users.remember_token і ставить довгоживучу зашифровану cookie. Коли сесія вже закінчилась, а cookie є, користувача автентифікують за нею, і Auth::viaRemember() повертає true.
Ризики й що з ними роблять:
- Вкрадена cookie = доступ на весь термін її дії. Тому cookie має
HttpOnlyіSecure(через HTTPS), а на чутливих діях пароль запитують ще раз - middlewarepassword.confirm. - Спільний комп'ютер. Галочка на бібліотечному ПК лишить акаунт відкритим для наступного. Тому вона не має бути ввімкнена за замовчуванням.
- Вихід скидає токен.
Auth::logout()оновлюєremember_token, і стара cookie перестає працювати - тож «вийти» справді виходить.
Якщо viaRemember() повертає true, розумно обмежити найнебезпечніші дії, доки людина не підтвердить пароль.