Документация

База API

Live Vue: baseURL = https://demo.riverspeech.ru/api, запросы с cookie (withCredentials). Пути в таблицах — относительно этой базы: POST /login = https://demo.riverspeech.ru/api/login.

В браузере клона — same-origin /api через прокси на demo. Клиент зовёт /api/login, /api/files, … с credentials: include. Cookie rs_auth_token садится на origin клона.

Аутентификация

Как live, не тихий логин с сервера. Форма email / пароль / запомнить. Без сессии кабинет (в том числе /docs/) не показывается: 401 → /login/. Frozen /files_2/ — исключение.

Метод Путь Зачем
POST /login { email, password, remember } → cookie rs_auth_token + { user: {…} }
POST /logout сброс сессии
GET /user текущий пользователь
GET /app-config флаги SSO / bots / …

GET /user

Ответ: { data: { id, full_name, email, role, theme, … } }.

GET /app-config

Флаги SSO/bots — false (проверено на live).

Примеры

Плейсхолдеры <email> <password> <token>. Пароль в эту страницу не подставляется. Login без Accept: application/json: Laravel отвечает 302 HTML /login/ — fetch может дать ложный успех. Клиент: Accept: application/json; для login redirect: manual; успех только JSON 200.

curl — вход (live)
curl -X POST 'https://demo.riverspeech.ru/api/login' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -c cookies.txt \
  -d '{"email":"<email>","password":"<password>","remember":true}'
fetch — вход (клон, same-origin /api)
fetch('/api/login', {
  method: 'POST',
  credentials: 'include',
  redirect: 'manual',
  headers: {
    Accept: 'application/json',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    email: '<email>',
    password: '<password>',
    remember: true,
  }),
})
curl — список файлов (cookie)
curl -X GET 'https://demo.riverspeech.ru/api/files?page=1' \
  -H 'Accept: application/json' \
  -H 'Cookie: rs_auth_token=<token>'
fetch — список файлов (клон)
fetch('/api/files?page=1', {
  credentials: 'include',
  headers: { Accept: 'application/json' },
})
fetch — выход
fetch('/api/logout', {
  method: 'POST',
  credentials: 'include',
  headers: { Accept: 'application/json' },
})