Я пытаюсь постепенно перенести приложение Yii1 в Yii2. До полного переноса проекта Yii1 и Yii2 должны работать вместе. Для этого я загрузил Yii Basi c и поместил его в каталог root. Затем внесены изменения в 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. Так как я могу передать CSRF Yii1 в Yii2? Таким образом, оба приложения работают с одним и тем же токеном CSRF. Начиная с того момента, когда yii2 генерирует CSRF, CSRF yii1 становится недействительным
То, что я имею, устанавливает CSRF Yii1 в Session, а затем в Yii2 генерирует CSRF, используя значение из сессии. Но не знаете, как этого добиться в Yii2?
Я попробовал ниже в своем глобальном контроллере в Yii 2.
Yii::$app->getSession()->set(Yii::$app->request->csrfParam,$_SESSION['csrf_token_value']);
Так что у меня будет CSRF Yii 1 в Yii2, но не уверен, как использовать это в Yii 2.