Почему возникает непонятная ошибка csrf валидации?

при отправки форм в backend возникает ошибка Bad Request (#400) Не удалось проверить переданные данные формируются разные csrf токены так вот такой токен формируются в форме

anRRVnhKa2o9RmkGGwUTBUdMGBFOIB06Dz0rFE0ILgAvARUPH34JIw==

вот такой приходит в куках

VTZHWlFDLVkWByoRZRZ0aBcOcSI/c0YtZ1E9CmZwRgYFTHUuJTpqMQ==

не объясните как понять почему. И как протестить где возникает ошибка.
  • Вопрос задан
  • 165 просмотров
Пригласить эксперта
Ответы на вопрос 1
mhthnz
@mhthnz
PHP, YII2, Golang, Linux
В файле yii\web\Request в функции generateCsrfToken поставьте
Yii::trace($token);
Потом в дебаггере увидите сколько раз вызывается генерация токена, по идее она должна вызываться 1 раз и потом браться из переменной. У вас скорее всего несколько раз генерирует. Затем вызовите исключение, чтобы проследить откуда происходит вызов перегенерации.
throw new \Exception('1');
Если нужно отловить 2 и более вызов, то добавьте в класс переменную, напр: $iterator, и при каждом вызове генерации итерируйте ее и потом все это дело оборачиваете в условие:
if ($this->iterator == 2) {
    throw new \Exception('1');
}

Наверное как то так и я бы сделал.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы