Как реализовать CSRF без ветки в Symfony 4? - PullRequest
0 голосов
/ 24 октября 2019

Я хотел бы использовать токен csrf с сеансом (security-csrf). Это API (не REST), потому что с состоянием. Когда пользователь проходит аутентификацию, я отправляю ему токен csrf, но после того, как я пытаюсь проверить токен, он никогда не будет действительным. Я не использую веточку.

, когда пользователь аутентифицирован, я генерирую токен csrf и отправляю json:

  $tokenManager = new CsrfTokenManager();
  $data['fb-xsrf-token'] = $tokenManager->getToken('fb-xsrf-token')->getValue();

После каждого запроса я хочу управлять токеном следующим образом:

$submittedToken = $request->headers->get('fb-xsrf-token');
$token = new CsrfToken('fb-xsrf-token', $submittedToken);

if ($this->tokenManager->isTokenValid($token)) ...

isTokenValid () всегда возвращает false, потому что

$this->storage->hasToken('fb-xsrf-token') // false

Кажется, что это не сохранение в сеансе.

...