Php Yii2自动登录会话问题
我在Yii2 advance应用程序中启用了自动登录,当用户登录并选中“记住我”复选框时,即使关闭浏览器,他也不需要登录。但问题是,成功登录后设置的会话不存在。这是登录功能代码Php Yii2自动登录会话问题,php,session,login,yii2-advanced-app,Php,Session,Login,Yii2 Advanced App,我在Yii2 advance应用程序中启用了自动登录,当用户登录并选中“记住我”复选框时,即使关闭浏览器,他也不需要登录。但问题是,成功登录后设置的会话不存在。这是登录功能代码 public function actionLogin() { if (!Yii::$app->user->isGuest) { return $this->goHome(); } $model = new LoginForm(); if ($mode
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。会话中只存在用户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?
我没有找到Yi2框架将用户ID设置到cookie中并在会话中设置它以防自动登录的代码
先谢谢你