Rails, аутентификация Devise, проблема с CSRF

Я делаю приложение с одной страницей -с использованием Rails. При входе и выходе контроллеры Devise вызываются с использованием ajax. Проблема, с которой я сталкиваюсь, заключается в том, что когда я 1 )вхожу в систему 2 )выхожу из нее, повторный вход не работает.

Я думаю, что это связано с токеном CSRF, который сбрасывается, когда я выхожу из системы (, хотя на самом деле этого не должно быть ), и, поскольку это одна страница, старый токен CSRF отправляется в запросе xhr, что приводит к сбросу сеанса.

Чтобы быть более конкретным, это рабочий процесс:

  1. Войти
  2. Выйти
  3. Войдите в систему (успешно 201. Однако печатает WARNING: Can't verify CSRF token authenticityв журналах сервера)
  4. Последующий запрос ajax завершается с ошибкой 401 неавторизованный
  5. Обновите веб-сайт (в этот момент, CSRF в заголовке страницы изменится на что-то другое)
  6. Я могу войти, это работает, пока я не попытаюсь выйти и войти снова.

Любые подсказки очень ценятся! Дайте мне знать, если я могу добавить больше деталей.

39
задан vrepsys 14 June 2013 в 12:36
поделиться