Я создаю сайт в Yii, и я застрял на этапе аутентификации пользователя. Независимо от того, что я делаю, я не могу аутентифицировать пользователей или сохранять некоторую ценность в сеансе.Yii аутентификация пользователя и сеанс не работают
Мой UserIdentity компонент выглядит следующим образом:
class UserIdentity extends CUserIdentity
{
private $_id;
public function authenticate(){
if(($userRecord = Admin::model()->findByAttributes(array('username'=>$this->username)))===null){
return $this->errorCode=self::ERROR_USERNAME_INVALID;
}
if($userRecord->password!=hash('sha256', $this->password)){
return $this->errorCode=self::ERROR_PASSWORD_INVALID;
}
$this->_id=$userRecord->id;
$this->setState('title', $userRecord->username);
Yii::app()->session['clientId'] = $userRecord->clientId;
Yii::app()->session['id'] = $userRecord->id;
Yii::app()->session['loggedin'] = true;
return $this->errorCode=self::ERROR_NONE;
}
public function getId(){
return $this->_id;
}
}
МОЯ Yii:app()->user->isGuest
всегда возвращает истинное и Yii::app()->user->id
возвращает ничего.
Вот почему я попытался использовать Yii::app()->session['loggedin']
для аутентификации. Но даже это не работает. Когда я получаю доступ к массиву сеансов вроде этого Yii::app()->session
, я получаю сообщение об ошибке Property "CWebUser.session" is not defined.
.
Это действительно расстраивает. Я новичок в Yii. Пожалуйста помоги.
Вы [пользователь] (http://www.yiiframework.com/doc/api/1.1/CWebUser#login-detail) пользователь? –
Oh sh1t. Во время тестирования я прокомментировал функцию входа в систему. Спасибо. Теперь он отлично работает. – ajaybc
отлично, я добавил его в качестве ответа. –