Php 将Yii1 CSRF令牌使用到Yii2中

Php 将Yii1 CSRF令牌使用到Yii2中,php,yii2,yii1.x,Php,Yii2,Yii1.x,我正在尝试将Yii1应用程序逐渐迁移到Yii2。在整个项目迁移之前,Yii1和Yii2应该一起工作。为此,我下载了yiibasic并将其放在根目录中。然后在Yii1/protected/config/main.php中进行更改,以在Yii1和Yii2之间共享会话 components => array( 'session' => array( 'class' => 'CDbHttpSession', 'sessionTableName'

我正在尝试将Yii1应用程序逐渐迁移到Yii2。在整个项目迁移之前,Yii1和Yii2应该一起工作。为此,我下载了yiibasic并将其放在根目录中。然后在Yii1/protected/config/main.php中进行更改,以在Yii1和Yii2之间共享会话

components => array(
    'session' => array(
        'class' => 'CDbHttpSession',
        'sessionTableName' => 'session',
    ),
    'user' => array(
        'allowAutoLogin' => true,
        'authTimeout' => 3600 * 24 * 30,
        'stateKeyPrefix' => ''
    ),
)
上述变更后,Yii1和Yii2共享同一会话

到目前为止,用户通过Yii1登录。那么,我如何将Yii1的CSRF传递到Yii2?因此,两个应用程序使用相同的CSRF令牌。当yii2生成CSRF时,yii1的CSRF无效

我要做的是将Yii1的CSRF设置到Session中,然后在Yii2中使用Session中的值生成CSRF。但不确定如何在Yii2中实现这一点

我在Yii 2中的全球控制器中尝试了以下内容

Yii::$app->getSession()->set(Yii::$app->request->csrfParam,$_SESSION['csrf_token_value']);

因此,我将Yii 1的CSRF转换为Yii 2,但不确定如何在Yii 2中使用它。

我已通过更改Yii 2应用程序的CSRF参数名称解决了此问题,并解决了此问题

Yii::$app->getSession()->set(Yii::$app->request->csrfParam,$_SESSION['csrf_token_value']);
i、 e