2013-10-07 2 views
0

У меня есть приложение Rails 3, и я использую Warden для аутентификации. Он работает нормально, но когда я пытаюсь использовать AJAX (POST), доступ к одному из контроллеров, приложение выходит из моей учетной записи и просит меня снова войти в систему.AJAX call log out my account

+0

есть несколько причин, но для стартера вы можете проверить, есть ли <% = csrf_meta_tag%> в макете приложения. –

ответ

0

Это из-за рельсов CSRF проверка маркера. Существует несколько различных способов справиться с этим:

  1. Хакер, грязный ярлык - просто сделайте вызов AJAX использованием HTTP GET вместо POST. GET не будет искать маркер CSRF по умолчанию
  2. других грязного ярлыка - отключить проверку CSRF для данного конкретного действия в контроллере

    protect_from_forgery :except => :create 
    
  3. Правильно реализовать CSRF токен с AJAX звонков, есть много руководств там , например this one или this one

+1

Определенно не рекомендую не использовать токены CSRF, это будет большой проблемой безопасности. – varatis