0

For some reason, after logging in, the user details gets lost.

I created a Customer class, implemented IdentityInterface and extended ActiveRecord with this class.

When a customer logs in, the customer is properly authenticated. I noticed at this point (using a var_dump) that the Yii::$app->user is properly set to the appropriate Customer instance, and I also noticed the Yii::$app->session is enabled. This is right after the $model->login() function; where $model here is an instance of the de-facto LoginForm below.

public function login()
{
    if ($this->validate()) {
        return Yii::$app->user->login($this->getCustomer(), $this->rememberMe ? 3600 * 24 * 30 : 0);
    } else {
        return false;
    }
}

However, after the redirect in $this->goBack(), I noticed Yii::$app->user — which was once an instance of yii\web\User, with its identityClass at app/models/Customer — is now null. I also noticed that the session at this point (immediately after the redirect) is null.

This means Yii::$app->user->isGuest is always true even after a customer has been properly authenticated.

How do I carry the logged-in user along through the redirect?

Igbanam
  • 5,904
  • 5
  • 44
  • 68

0 Answers0