Итак, мне поручили исправить одно из наших старых веб-приложений, в котором используется Yii, и мы больше не работаем с dev.
Я не разработчик Yii, понятия не имеючто я делаю
Но в любом случае, я попытался и потерпел неудачу ...
Проблема заключается в следующем:
Большинство наших старых пользователей могут войти,но новые не могут.Что происходит, когда они пытаются войти в систему, они сначала входят в систему, а затем (я думаю) , когда они должны быть перенаправлены на домашнюю страницу с помощью return $this->goHome();
, это перенаправляется для входа в систему.Поэтому после этого страница входа отправляет их обратно на домашнюю страницу.(так как они вошли в систему на этом этапе) После 10 на этой странице отображается ошибка слишком много перенаправлений.
Что я пробовал:
Я изменил goBack на goHome, потому что я пыталсяможет быть, он не знает, куда отправить пользователя, вот почему это происходит.Не повезло ....
public function actionLogin() {
if (!Yii::$app->getUser()->isGuest) {
return $this->goHome();
}
$this->layout = "@app/views/layouts/loginscreen.php";
$model = new Login();
if ($model->load(Yii::$app->getRequest()->post()) && $model->login()) {
return $this->goBack();
} else {
return $this->render('login', [
'model' => $model,
]);
}
}
Я отредактировал .htaccess, но это не сработало, и это не объяснило бы, почему пожилые пользователи могут войти в систему.
Что у меня есть как информация:
- Пожилые пользователи могут войти.(не знаю, как далеко назад)
- Приложение было скопировано на другой сервер, но мы все еще используем старый.
- После попытки войти в систему с новым пользователем, я не могу загрузитьна странице, если только я не удаляю файлы cookie.
- Файлы cookie настроены так, что они никогда не исчезают.
веб-настройки, относящиеся к пользователю:
'user' => [
'identityClass' => 'app\models\User',
'loginUrl' => ['admin/user/login'],
'on ' . \yii\web\User::EVENT_AFTER_LOGIN => ['app\events\UserLoginEvents', 'AfterLogin'],
'enableAutoLogin' => true,
],
ПослеЛогин может быть пользовательским:
namespace app\events;
use Yii;
class UserLoginEvents {
public static function AfterLogin($event) {
$session = Yii::$app->session;
$session->updateUser(Yii::$app->getUser()->id);
if (!trim($event->identity->getAuthKey())) {
$event->identity->generateAuthKey();
$event->identity->save();
Yii::$app->getUser()->switchIdentity ( $event->identity, $event->duration );
}
}
}
Спасибо за вашу помощь заранее.Нам действительно не с кем идти, так что я в крайнем случае .. И в этом тоже не очень хорошая вещь.
У меня есть доступ по ssh к серверу phpmyadmin accessк БД, и у меня есть код, но не Git только с FTP.