Php 将Yii1 CSRF令牌使用到Yii2中
我正在尝试将Yii1应用程序逐渐迁移到Yii2。在整个项目迁移之前,Yii1和Yii2应该一起工作。为此,我下载了yiibasic并将其放在根目录中。然后在Yii1/protected/config/main.php中进行更改,以在Yii1和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'
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