Я работаю над проектом Rails 5 api, который используется мобильным клиентом с драгоценным камнем devise_token_auth
для авторизации.Rails 5 devise_token_auth Не удается проверить подлинность CSRF-токена
Я понимаю, что означает предупреждение.
первый вопрос:CSRF защиты должен быть отключен для апи (JSON/XML) ответить, правильно?
Я искал некоторые в Интернете, кажется, что CSRF просто происходит в веб-приложении с помощью файла cookie. Но я прочитал это из rails api documen т:
Важно помнить, что XML или JSON запросы также влияют> и если вы разрабатываете API, вы должны изменить защиту от подделки> метод в ApplicationController (по умолчанию:: исключение):
class ApplicationController < ActionController::Base protect_from_forgery unless: -> { request.format.json? } end
Так я все еще получаю предупреждение, добавив, как это:
class ApplicationController < ActionController::Base
protect_from_forgery unless: -> { request.format.json? }
include DeviseTokenAuth::Concerns::SetUserByToken
end
второй вопрос: Если API не нуждается в защите от CSRF, почему
protect_from_forgery unless: -> { request.format.json? }
не работает?
Не уверен, что я понял что-то неправильно. Спасибо!
Спасибо, Тоби! Ред. – Nathan