Я включил автоматический вход в приложение Yii2 advance, когда пользователь входил в систему и установил флажок Запомнить меня, поэтому он не требует входа, даже если он закрывает браузер. Но проблема в том, что мой сеанс не существует, который устанавливается после успешного входа в систему. Вот код функции входа в систему,
public function actionLogin()
{
if (!Yii::$app->user->isGuest) {
return $this->goHome();
}
$model = new LoginForm();
if ($model->load(Yii::$app->request->post()) && $model->login()) {
$user = User::find()->where(['id' => Yii::$app->user->getId()])->one();
$session = Yii::$app->session;
$session->set('role_id', $user->role_id);
$session->set('employer_id', $user->employer_id);
return $this->goBack();
} else {
return $this->render('login', [
'model' => $model,
]);
}
}
roll_id и Employer_id не существует в сеансе, когда пользователь закрывает браузер и снова посещает сайт. В сеансе существует только идентификатор пользователя, потому что платформа Yii2 выбирает его из файлов cookie и устанавливает в сеанс.
Вот записи в файле конфигурации для автоматического входа и сеанса.
'user' => [
'identityClass' => 'common\models\User',
'enableAutoLogin' => true,
'identityCookie' => ['name' => '_identity-frontend', 'httpOnly' => true],
],
'session' => [
// this is the name of the session cookie used for login on the frontend
'name' => 'advanced-frontend',
],
Как добавить roll_id и Employer_id в сессии в случае автоматического входа?
Я не нашел код, в котором инфраструктура Yii2 устанавливает идентификатор пользователя в cookie и устанавливает его в сеансе в случае автоматического входа в систему.
Заранее спасибо…
Задача ещё не решена.
Других решений пока нет …