/rpotected/components/UserIdentity.php に次の関数があります。
public function authenticate()
{
$username = $this->username;
$password = $this->password;
$user = Users::model()->find('username=? AND password=?', array($username, $password));
if($user === NULL){
$this->errorCode=self::ERROR_UNKNOWN_IDENTITY;
}else{
$this->username = $user->username;
sess('SESS_USER_INFO', $user->attributes);
//print_r(sess('SESS_USER_INFO'));
$this->errorCode=self::ERROR_NONE;
}
return !$this->errorCode;
}
以下は /protected/models/Users.php の抜粋です:
public function login()
{
if($this->_identity===null)
{
$username = $this->username;
$password = md5($this->password);
//echo "Username: ".$username."<br />Password:".$password;
$this->_identity=new UserIdentity($username, $password);
$this->_identity->authenticate();
}
if($this->_identity->errorCode===UserIdentity::ERROR_NONE)
{
$duration=$this->rememberMe ? 3600*24*30 : 60*20; // 30 days
//print_r($this->_identity);
Yii::app()->user->login($this->_identity,$duration);
//echo "Login Successful";
return true;
}
else{
//echo "Error";
$this->addError('password','Incorrect username or password.');
return false;
}
問題: ログイン時に [マイ プロファイル] リンクをクリックすると、再度ログインするよう求められます。したがって、セッションはログイン資格情報を保存/保存しておらず、ログインの有効期間中保持していないようです。
セッション情報が保存され、ログイン資格情報が引き継がれるようにするには、認証機能をどのように変更する必要がありますか?