Расширенный шаблон Yii2 Войдите в систему из внешнего интерфейса и перенаправьте на домашнюю страницу бэк-энда с именем входа - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть код в шаблоне Yii2 Advanced, здесь я хочу создать единую страницу входа для внешнего интерфейса для пользователей и внутреннего интерфейса для администраторов. После того, как я вошел в систему из внешнего интерфейса, затем, если это был администратор, я хочу перенаправить на домашнюю страницу бэкэнда с таким логином, но не вошел в веб-интерфейс, также, если это был пользователь, я хочу перенаправить на домашнюю страницу внешнего интерфейса.

Здесь моя проблема для администратора: я перенаправлен на страницу индекса бэкэнда, но мне нужно снова войти в бэкэнд. Кроме того, если я использовал интерфейс для администратора, эта учетная запись все еще остается

Мой сайт Controller.php во внешнем интерфейсе:

public function actionLogin()
{
    if (!Yii::$app->user->isGuest) {
        return $this->goHome();
    }

    $model = new LoginForm();
    if ($model->load(Yii::$app->request->post())){
        $userDetails = User::findByUsername($model->username);
        if($userDetails->username == 'admin' && $model->login()) {
            return $this->redirect('http://localhost/yiiadvanced/backend/web/index.php');
        } else {
            $model->login();
            return $this->redirect(array('/site/custom'));
        }
    } else {
        $model->password = '';
        return $this->render('login', [
            'model' => $model,
        ]);
    }
}

Данные администратора и данные пользователя находятся в одной таблице.

Пожалуйста, кто-нибудь, дайте решение этой проблемы,

Заранее спасибо.

1 Ответ

0 голосов
/ 18 сентября 2018

«необходимо снова войти в бэкэнд», чтобы различать пользователей внешнего и внутреннего интерфейсов, вы можете изменить имя сеанса в конфигурации с другим именем между внешним интерфейсом и бэкэндом

'session' => [
   // this is the name of the session cookie used for login on the backend
   'name' => 'advanced-frontend',
 ],
...