API
› CSRF
CSRF
CSRF-токен требуется только для write-actions при cookie-аутентификации. Bearer-запросы CSRF не используют — заголовок-носитель токена не отправляется браузером автоматически (в отличие от куков), поэтому cross-site-форджинг невозможен.
Когда нужен
| Способ авторизации | Read (GET) | Write (POST) |
|---|---|---|
| Cookie / session | — | обязателен |
| Bearer-токен | — | — |
| Без авторизации (public actions) | — | —* |
Как получить
GET /api.php?act=csrf_token
→ { "ok": true, "result": { "token": "32 hex characters" } }
Как передать
Приоритет проверки (любой вариант):
- HTTP-заголовок
X-CSRF-Token: <token>(рекомендуется) - Параметр запроса/тела
csrf_token=<token>
Ошибки
| Код | Когда |
|---|---|
csrf_invalid | Токен отсутствует, не совпадает или сессия не имеет сохранённого токена |
auth_required | Куки сессии нет / истекла — CSRF проверять нечего |
После
auth_login сессия ротируется и старый CSRF-токен инвалидируется.
Новый токен возвращается в поле result.csrf_token ответа login — сохраняйте его.
