Я использовал встроенную функцию yii2 для установки сессии. Я не могу использовать встроенный логин yii2 из-за некоторых требований.
Итак, я установил сессию, используя ниже:
Yii :: $ app-> session-> set («уникальный_код», «xxxx»);
и в моем файле config / main.php
'session' => [
// this is the name of the session cookie used for login on the frontend
'name' => 'project-frontend',
'timeout' => 60*60*24*30,
],
Но все же пользователь вышел из веб-сайта через некоторое время.
Так как же увеличить время ожидания сеанса в этом случае?
Я предложу вам, что если вы хотите уничтожить только конкретную сессию, установите две сессии:
Yii::$app->session->set('unique_code', 'xxxx');
Yii::$app->session->set('code_time', 'xxxx');
Проверьте текущее время с code_time, как только оно закончится, сбросьте обе сессии.
если вы хотите, чтобы пользователь через некоторое время вышел из системы с текущим решением:
'user' => [
'identityClass' => 'common\models\User',
'enableAutoLogin' => false,
'authTimeout' => 3600, // auth expire
],'session' => [
'class' => 'yii\web\Session',
'cookieParams' => ['httponly' => true, 'lifetime' => 3600 * 4],
'timeout' => 3600*4, //session expire
'useCookies' => true,
],
Проблема в том, что в куки истекает время. Когда время истекло, пользователь выходит из системы.
Решение для изменения срока действия файлов cookie находится в конфигурации для компонента сеанса, установленного для срока действия файлов cookie:
'components' => [
'session' => [
'class' => 'yii\web\Session',
'cookieParams' => ['lifetime' => 7 * 24 *60 * 60]
],
]
Когда пользователь входит в систему, срок действия файлов cookie в текущем примере истекает через неделю.