L'authentification et la session de l'utilisateur Yii ne fonctionnent pas
-
11-12-2019 - |
Question
Je construis un site Web dans Yii et je suis bloqué à l'étape d'authentification de l'utilisateur.Quoi que je fasse, je ne parviens pas à authentifier les utilisateurs ni à stocker une valeur dans la session.
Mon composant UserIdentity est le suivant :
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;
}
}
Mon Yii:app()->user->isGuest
renvoie toujours vrai et Yii::app()->user->id
ne renvoie rien.
C'est pourquoi j'ai essayé d'utiliser Yii::app()->session['loggedin']
pour faire l'authentification.Mais même cela ne fonctionne pas.Quand j'accède à un tableau de sessions comme celui-ci Yii::app()->session
j'obtiens l'erreur Property "CWebUser.session" is not defined.
.
Cela devient vraiment frustrant.Je suis nouveau sur Yii.S'il vous plaît, aidez-moi.
La solution
Utilisez le login
fonction de CWebUser.
Suivre ce tutoriel.