从我的应用程序视图中,我需要以编程方式注销当前用户并在此之后立即登录另一个用户.
我想将第二个用户登录到他自己的不同CHttpSession(使用另一个sessionID,依此类推).出于安全考虑,我需要它.
如何在Yii框架中实现这一点?
代码如下
$ oSession->破坏(); $ oSession->开();
没有按预期工作..
看起来你正试图冒充用户:
在UserIdentity中创建一个函数,使您能够以另一个已知用户身份登录:
protected function logInUser($user)
{
if($user)
{
$this->_user = $user;
$this->_id=$this->_user->id;
$this->setState('name', $this->_user->name);
$this->errorCode=self::ERROR_NONE;
}
}
Run Code Online (Sandbox Code Playgroud)在您的控制器中,调用此函数以获取UserIdentity对象,然后使用Yii的CWebUser登录
$ui = null;
$user = User::model()->findByPk($userId);
if($user)
{
$ui = new UserIdentity($user->email, "");
$ui->logInUser($user);
}
Yii::app()->user->login($ui, 0);
Run Code Online (Sandbox Code Playgroud)请记住保护此控制器的操作不受非授权用户的影响.
归档时间: |
|
查看次数: |
931 次 |
最近记录: |