2

Yii で Web サイトを構築していますが、ユーザー認証の段階で行き詰まっています。何をしても、ユーザーを認証したり、セッションに値を保存したりできません。

私の 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;
    }

}

MyYii:app()->user->isGuestは常に true をYii::app()->user->id返し、何も返しません。

そのためYii::app()->session['loggedin']、認証を行うために使用してみました。しかし、それでも機能していません。このようにセッション配列にアクセスするとYii::app()->session、エラーが発生しますProperty "CWebUser.session" is not defined.

これは本当にイライラしています。私はYiiが初めてです。助けてください。

4

1 に答える 1

6

loginCWebUserの関数を使用します。

このチュートリアルに従ってください。

于 2012-05-19T06:14:10.287 に答える