Функциональность "Запомнить меня" НУЖНА поле в БД. На самом деле вы должны хранить куки "Запомнить меня" где-то в вашей программе. Где лучшее место, чем БД, чтобы сделать это ??
Сначала вы должны добавить remember_token
(100-символьная строка) к вашей таблице Users в базе данных, которая будет использоваться для хранения токена "Запомнить меня".
На следующем шаге при попытке входа в систему необходимо добавить $remember
параметр, подобный следующему:
if (Auth::attempt(['email' => $email, 'password' => $password], $remember)) {
// The user is being remembered...
}
после этого кода ваш пользователь будет помнить его запоминающий файл cookie. ТАК его можно вспомнить так:
if (Auth::viaRemember()) {
//
}
В любом случае, если вы хотите сохранить токен запомнить в другой таблице, вы должны определить модель, подобную RememberToken
, и добавить это отношение к вашей Users
модели:
public function rememberToken() {
return $this->hasOne('RememberToken'); // also add foreign keys
}
А теперь нужно переопределить! Сначала переопределите getRememberToken()
и setRememberToken()
методы, а также вам нужно переопределить getRememberTokenName()
.
В результате EloquentUserProvider::retrieveByToken()
должно быть изменено в EloquentUserProvider
классе. Вероятно, вам нужно заставить вашу модель User
присоединиться к таблице remember_tokens
в каждом запросе, добавив к ней глобальную область и вернуть метод Remember_tokens.token из метода getRememberTokenName()
.
Кстати, действительно ли это необходимо?