是的,有些用户无法登录

时间:2018-10-03 14:47:26

标签: php redirect login yii2

因此,我已被分配去修复一个使用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文件,但这没有用,也无法解释为什么旧用户可以登录。

我所拥有的信息:

  • 旧用户可以登录。 (不确定多远)
  • 该应用已复制到其他服务器, 但我们仍然使用旧的。
  • 尝试使用新用户登录后,除非删除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,并且可以访问数据库,而我   有代码,但没有ftp的git。

1 个答案:

答案 0 :(得分:-1)

我认为问题出在高空

return $this->goBack();

是说转到上一页,因此在登录页面中再次进入,这是因为您在登录页面中,然后在登录页面中进行了发布,然后说要在登录页面中再次进入。

尝试使用不同的代码:

return $this->redirect(['/site/index']);

通过这种方式,最好使用上面的语法,因为某些服务器(尤其是新服务器)不能具有重定向历史记录