About login()
Если $enableSession
истинно:
- идентификационная информация будет сохранена в сеансе и будет доступна в
следующие запросы
- в случае
$duration == 0
: до сеанса
остается активным или пока пользователь не закроет браузер
- в случае
$duration > 0
: пока сеанс остается активным или как долго? как
cookie остается действительным на $duration
в секундах, когда
$enableAutoLogin
установлено true
.
Вам необходимо использовать второй параметр для Yii::$app->user->login();
, который определяет, сколько секунд пользователь может оставаться в состоянии входа в систему, по умолчанию 0
.
//keep the cookie duration valid for 120 seconds or 2 minutes
Yii::$app->user->login($user,120);
Поскольку вы установили $enableAutoLogin
на true
, этот параметр не игнорируется, используется значение по умолчанию 0
, и сеанс очищается, как только вы закрываете приложение. Подробнее см. DOCS
.
Для Dektrium-user
вы используете значение, установленное в модели модуля LoginForm
сверху, оно использует свойство rememberMe
Yii::$app->getUser()->login($this->user, $this->rememberMe ? $this->module->rememberFor : 0);
, который по умолчанию равен false
и работает с checkbox
в форме входа, для этого свойства должно быть установлено значение true
/** @var string Whether to remember the user */
public $rememberMe = false;
Это означает, что если вы не используете флажок rememberMe
в форме входа для входа в сеанс, и файл cookie будет действовать в течение 0
секунд после выхода из системы или закрытия окна.
Вы можете установить значение детали else
от 0
до любого пользовательского значения, например 60
на 1 минуту
Yii::$app->getUser()->login($this->user, $this->rememberMe ? $this->module->rememberFor : 60);
ИЛИ (мне не нравится эта часть)
Вы можете установить public $rememberMe=true;
по умолчанию, чтобы оно всегда передавало значение по умолчанию, равное двум неделям, которое запоминается, если оно не вышло из системы.
Вы также можете настроить пользовательское значение в настройках модуля в конфигурации под modules
, если не хотите использовать значение по умолчанию rememberFor
(2 недели).
'components'=>[
'user'=>[
'rememberFor'=>3000,