php – Yii2:是否可以从后端打开前端会话?
发布时间:2020-12-13 16:58:20 所属栏目:PHP教程 来源:网络整理
导读:我此刻与yii2斗争.以下场景: 我使用yii2高级模板,并有一个前端和一个后端,具有单独的用户表和登录. 现在我正在寻找一种后端用户可以从后端作为前端用户登录的方式.假设您在后端并查看前端用户,您可以单击“以此用户身份登录”. 这种情况可能吗? 我试图在后
我此刻与yii2斗争.以下场景:
我使用yii2高级模板,并有一个前端和一个后端,具有单独的用户表和登录. 现在我正在寻找一种后端用户可以从后端作为前端用户登录的方式.假设您在后端并查看前端用户,您可以单击“以此用户身份登录”. 这种情况可能吗? 我试图在后端的配置中配置前端使用: 'user' => [ 'identityClass' => 'backendmodelsBackendUser','enableAutoLogin' => false,],'frontendUser' => [ 'class' => 'yiiwebUser','identityClass' => 'commonmodelsUser', 在我的控制器中我尝试了这个: if (Yii::$app->frontendUser->login($user_group->user,0)) { return $this->redirect(Yii::$app->urlManagerFrontend->createAbsoluteUrl(['site/index','client' => $client->login_address])); } 谢尔盖回答后编辑: 后端配置 'user' => [ 'identityClass' => 'backendmodelsBackendUser','enableAutoLogin' => true,'identityCookie' => [ 'name' => '_backendUser',// unique for backend ] ], 前端配置: 'user' => [ 'identityClass' => 'commonmodelsUser','loginUrl' => ['message/welcome'],// weil beim SessionTimeout darauf umgeleitet wird,'authTimeout' => 1800,'identityCookie' => [ 'name' => '_frontendUser',// unique for frontend ] ], 控制器功能: public function actionLoginAs($id) { $user_group = UserGroup::findOne($id); if (is_null($user_group)) { return $this->redirect(['site/index']); } $group = $user_group->group; $client = $group->client; $yiiuser = new yiiwebUser([ 'identityClass' => 'commonmodelsUser','identityCookie' => [ 'name' => '_frontendUser',// unique for frontend ] ]); $user = $user_group->user; if ($yiiuser->login($user,15 * 60)) { return $this->redirect(Yii::$app->urlManagerFrontend->createAbsoluteUrl(['site/index','client' => $client->login_address])); } } 解决方法
>你必须separete auth cookie名称:
前端 'user' => [ 'identityClass' => 'commonmodelsUser','identityCookie' => [ 'name' => '_frontendUser',// unique for frontend ] ], 后端 'user' => [ 'identityClass' => 'backendmodelsBackendUser','identityCookie' => [ 'name' => '_backendUser',// unique for backend ] ], Actually separate front and backend users >我认为你必须在后端创建方法,如admin / auth / loginUser AuthController public function actionLoginUser($login) { // check admin is loggin in $yiiuser = new yiiwebUser([ 'identityClass' => 'commonmodelsUser','identityCookie' => [ 'name' => '_frontendUser',// unique for frontend ] ]); $user = commonmodelsUser::findByUsername($login); // check user exists $yiiuser->login($user,false,15 * 60); // 15 min return $this->redirect('/'); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |