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.

Était-ce utile?

La solution

Utilisez le login fonction de CWebUser.

Suivre ce tutoriel.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top