Yii :: app () -> user-> isGuest всегда возвращает true, даже если вход в систему был успешным

Я начал делать некоторые различия между теми пользователями, которые прошли аутентификацию, и теми, которые не прошли. Для этого я использую

Yii::app()->user->id;

Однако в определенном представлении я помещаю следующий код:

<?php 
    if(Yii::app()->user->isGuest) {
        print("Welcome back Guest!");
        print("Your id is ".Yii::app()->user->id);
    } else {
        print("Welcome back ".Yii::app()->user->name);
        print("Your id is ".Yii::app()->user->id);
}?>

И я всегда получаю сообщение «Добро пожаловать, гость!», Независимо от того, вошел ли я в систему (успешно) или нет. И если у меня есть авторизация, то отображается приветственное сообщение вместе с пользователем (скрыто) Эй ... извините за поздний ответ, надеюсь, вы все еще следите за этим! Я не расширяю данный класс UserIdentity. Это обязательно? Поскольку я все еще не очень хорошо разбираюсь в проблеме авторизации, я подумал, что было бы лучше попробовать с классом, который они предоставляют, а затем расширить свои собственные функции ... В любом случае, теперь я публикую свой класс UserIdentity с его небольшими настройками. ... возможно, проблема здесь ??

<?php class UserIdentity extends CUserIdentity{
private $_id;

public function authenticate()
{   
    $user = Users::model()->findAll('username=\''.$this->username.'\' AND password=\''.$this->encryptedPassword.'\'');
    if(!isset($user[0]))
    {
        return false;
    }
    else 
    {   
        $this->setState('id', $user[0]->id);            
        $this->username = $user[0]->username;
        $this->errorCode=self::ERROR_NONE;
        return true;
    }
}

public function getId()
{
    return $this->_id;
}

}

Вот результат, который я получил, когда начал вести журнал, как вы предложили; я получил этот результат сразу после успешного входа в систему.

[05:23:21.833][trace][vardump] CWebUser#1 ( 
[allowAutoLogin] => true 
[guestName] => 'Guest' 
[loginUrl] => array ( '0' => '/site/login' ) 
[identityCookie] => null 
[authTimeout] => null 
[autoRenewCookie] => false 
[autoUpdateFlash] => true 
[CWebUser:_keyPrefix] => '0f4431ceed8f17883650835e575b504b' 
[CWebUser:_access] => array() 
[behaviors] => array() 
[CApplicationComponent:_initialized] => true 
[CComponent:_e] => null 
[CComponent:_m] => null 
)

Любая помощь приветствуется!

10
задан LSerni 26 November 2012 в 20:50
поделиться