Аутентичность токенов Rails CSRF и Devise

У меня проблемы с токеном аутентификации rails и входом/выходом из Devise.

Я использую backbone js для создания одностраничного приложения, поэтому я использую ajax для входа/выхода пользователя. Вот что я наблюдаю, и я не понимаю, почему именно это происходит.

У меня в макете есть метатеги csrf __. страница загружается, я нажимаю кнопку входа, заполняю форму и отправляю ее, я успешно вошел в систему. Я могу делать то, что должен делать вошедший в систему пользователь.

Теперь я нажимаю кнопку выхода из системы, которая отправляет запрос DELETE через ajax, и я успешно выхожу из системы.

Весь описанный выше процесс находится на одной странице, никакие перезагрузки страниц не происходят, все это ajax.

Теперь, когда я снова нажимаю «Войти» и заполняю форму, он отправляет запрос ajax, регистрирует меня, но показывает предупреждающее сообщение на консоли сервера.

WARNING: Can't verify CSRF token authenticity

Теперь, почему он (придумал )авторизовать меня, во-первых, если он (rails )не мог проверить подлинность токена CSRF.

и теперь, когда я пытаюсь сделать то, что должен делать вошедший в систему пользователь, это не удается, публикация формы завершается ошибкой с сообщением об ошибке от devise

401 Unauthorized {"error":"You need to sign in or sign up before continuing."}

и предупреждение на консоли сервера

WARNING: Can't verify CSRF token authenticity

и в этот момент я вышел из системы. Если я обновлю страницу самостоятельно, я увижу, что больше не вошел в систему.

Что происходит ?

Срок действия моего первого токена аутентификации истекает после первого выхода из системы?

Я использую

rails (3.2.3)
devise (2.1.0)

Заранее спасибо:)

8
задан Abid 31 July 2012 в 10:01
поделиться