Еще в феврале 2011 года Rails был изменен на требовать токен CSRF для всех не-GET, даже для конечной точки API, Я понимаю объяснение того, почему это важное изменение для запросов браузера, но этот пост в блоге не дает никаких рекомендаций относительно того, как API должен обрабатывать изменения.
Мне не интересно отключать защиту CSRF для определенных действий.
Как API должен иметь дело с этим изменением? Ожидается ли, что клиент API сделает GET-запрос API для получения токена CSRF, а затем включает этот токен в каждом запросе во время этого сеанса?
Похоже, что токен не меняется с одного POST на другой. Можно ли предположить, что токен не будет меняться в течение всего сеанса?
Я не наслаждаюсь дополнительной обработкой ошибок, когда истекает срок действия сеанса, но я полагаю, что это лучше, чем иметь GET токен перед каждым запросом POST/PUT/DELETE.