после обновления до rails 5 я получаю неверную ошибку токена CSRF при попытке войти - PullRequest
0 голосов
/ 02 апреля 2019

Я использую devise для аутентификации, но после обновления до rails 5 с rails 4 я не могу войти, даже если токен CSRF находится внутри запроса.

вот журнал сервера, который я вижу:


Started POST "/users/sign_in" for 127.0.0.1 at 2019-04-02 15:27:09 +1100
Processing by Users::SessionsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"q3Ui2rNEIIuRcpNxpbhbIxYLWuYcfd4FxBzIHKgBvdFLUZ96gTIJSQ37kfziG82Vg77NHfdvEkIrThfG6ySpiQ==", "user"=>{"email"=>"xxx", "password"=>"[FILTERED]", "remember_me"=>"0"}}

  User Load (0.5ms)  SELECT  `users`.* FROM `users` WHERE `users`.`email` = 'xxx' ORDER BY `users`.`id` ASC LIMIT 1
   (0.2ms)  BEGIN
  SQL (0.3ms)  UPDATE `users` SET `current_sign_in_at` = '2019-04-02 03:46:49', `sign_in_count` = 16, `updated_at` = '2019-04-02 03:46:49' WHERE `users`.`id` = 2
   (2.2ms)  COMMIT
Can't verify CSRF token authenticity.
   (0.2ms)  BEGIN
   (0.1ms)  COMMIT
  User Load (0.3ms)  SELECT  `users`.* FROM `users` WHERE `users`.`email` = 'xxx' ORDER BY `users`.`id` ASC LIMIT 1
   (0.2ms)  BEGIN
  SQL (0.4ms)  UPDATE `users` SET `last_sign_in_at` = '2019-04-02 03:46:49', `sign_in_count` = 17 WHERE `users`.`id` = 2
   (0.3ms)  COMMIT

Очевидно, что когда я пропускаю проверку токена подлинности, проблема исчезает.

1 Ответ

0 голосов
/ 02 апреля 2019

Немного покопавшись, я нашел этот этот поток и, в частности, этот :

Для Rails 5, обратите внимание, что protect_from_forgery больше неперед цепочкой before_action, поэтому, если вы установили authenticate_user до protect_from_forgery, ваш запрос приведет к «Невозможно проверить подлинность токена CSRF».Чтобы решить эту проблему, либо измените порядок их вызова, либо используйте protect_from_forgery prepend: true.

, чтобы решить проблему:)

(спасибо Марку Мерритту, который указал натакая же проблема)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...