因此,我已被分配去修复一个使用Yii的较旧的Web应用程序,而我们的开发人员将不再可用。
我不是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文件,但这没有用,也无法解释为什么旧用户可以登录。
网络配置用户相关的东西:
'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,并且可以访问数据库,而我 有代码,但没有ftp的git。
答案 0 :(得分:-1)
我认为问题出在高空
return $this->goBack();
是说转到上一页,因此在登录页面中再次进入,这是因为您在登录页面中,然后在登录页面中进行了发布,然后说要在登录页面中再次进入。
尝试使用不同的代码:
return $this->redirect(['/site/index']);
通过这种方式,最好使用上面的语法,因为某些服务器(尤其是新服务器)不能具有重定向历史记录