如何以编程方式重新创建php yii会话?

ale*_*oid 2 php session yii

从我的应用程序视图中,我需要以编程方式注销当前用户并在此之后立即登录另一个用户.

我想将第二个用户登录到他自己的不同CHttpSession(使用另一个sessionID,依此类推).出于安全考虑,我需要它.

如何在Yii框架中实现这一点?

代码如下

$ oSession->破坏(); $ oSession->开();

没有按预期工作..

Asg*_*oth 5

看起来你正试图冒充用户:

  1. 在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)
  2. 在您的控制器中,调用此函数以获取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)

请记住保护此控制器的操作不受非授权用户的影响.