脚本宝典收集整理的这篇文章主要介绍了认证 – Yii :: app() – > user-> isGuest始终返回true,即使登录成功,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
Yii::app()->user->id;
但是,在确定的视图中,我放了以下代码:
<?PHP if(Yii::app()->user->isGuest) { PRint("Welcome back Guest!"); print("Your id is ".Yii::app()->user->id); } else { print("Welcome back ".Yii::app()->user->name); print("Your id is ".Yii::app()->user->id); }?>
我总是得到“欢迎回来的客人!”,无论我是否登录(成功).如果我已经登录,那么它会显示欢迎信息和用户的id!
编辑
@ briiC.lv
嘿..对不起,迟到的回复,希望你还在跟着!我不扩展给定的UserIdentITy类.这是强制性的吗?由于我仍然没有得到很好的整个授权问题,我认为最好是尝试与他们提供的类,然后扩展与我自己的功能..无论如何,接下来我发布我的UserIdentity类与它的小调整.可能问题在这里?
<?PHP class UserIdentity extends CUserIdentity{ private $_id; public function authenticate() { $user = Users::model()->findAll('username=\''.$this->username.'\' AND password=\''.$this->encryptedPassword.'\''); if(!isset($user[0])) { return false; } else { $this->setstate('id',$user[0]->id); $this->username = $user[0]->username; $this->errorCode=self::ERROR_NONE; return true; } } public function getId() { return $this->_id; }
}
这是当我建议登录时得到的输出;我成功登录后立即得到这个输出.
[05:23:21.833][trace][VARdump] CWebUser#1 ( [allowAutoLogin] => true [guestName] => 'Guest' [LOGinUrl] => array ( '0' => '/site/login' ) [identityCookie] => null [authTimeout] => null [autoRenewCookie] => false [autoUpdateFlash] => true [CWebUser:_keyPrefix] => '0f4431ceed8F17883650835e575b504b' [CWebUser:_access] => array() [behaviors] => array() [CApplicationcomponent:_initialized] => true [CComponent:_e] => null [CComponent:_m] => null )
任何帮助深表感谢!
if(Yii::app()->user->isGuest) { print("Not logged"); } else { print_r(Yii::app()->user); print("Welcome ".Yii::app()->user->name); print("Your id is ".Yii::app()->user->id); }
并在你的config / main.PHP文件中检查会话变量
... 'session' => array( 'autoStart'=>true,),...
以上是脚本宝典为你收集整理的认证 – Yii :: app() – > user-> isGuest始终返回true,即使登录成功全部内容,希望文章能够帮你解决认证 – Yii :: app() – > user-> isGuest始终返回true,即使登录成功所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。