CPVM HTTP API: Authorization and authentication

Создание сессии

Формируем строку формата login:password и кодируем ее в base64:

echo "alex:qwerty123" | base64

->

ZG9rZXI6bXlTdXBlclNlY3JldFBhc3N3b3JkQWhET05UTE9PS0FUTUU=

подставляем ее в параметр запроса loginAndPassword:

curl -XPOST -d "loginAndPassword=ZG9rZXI6bXlTdXBlclNlY3JldFBhc3N3b3JkQWhET05UTE9PS0FUTUU" https://api.acapella.ru/auth/login

в ответ получаем токен:

{"token":"AF2C85E7A16E3F0C0AEC28B47DE6AC8098C18D10390798B05188B1B49DB1DD11"}

Перед созданием новой сессии можно инвалидировать все активные сессии параметром invalidateOld=true.

Аутентификация через HTTP Basic

В загаловоке Authorization указываем преобразованную в base64 строку формата username:token:

Basic B47DE6AC8098C18D10390798B051

Пример (пользователь: username, токен: AF2C85E7A16E3F0C0AEC28B47DE6AC8098C):

curl -XGET -u 'username:AF2C85E7A16E3F0C0AEC28B47DE6AC8098C' https://api.acapella.ru/cb/users/username/snapshots

При создании сессии указываем параметр enableCookies:

curl -XPOST  -d "enableCookies=true&loginAndPassword=ZG9rZXI6bXlTdXBlcl" https://api.acapella.ru/auth/login

После чего, в ответе на каждый успешный запрос в данной сессии будет установлен заголовок Set-Cookie:

Set-Cookie: token=AF2C85E7A16E3F0C0AEC28B47DE6AC8098C18D10390798B05188B1B49DB1DD11; Expires=1511518155; XSRF-TOKEN=854300

Обратите внимание на XSRF-TOKEN: если вы захотите производить аутентификацию через cookie, то кроме стандартного заголовка Cookie необходимо добавлять в ваши запросы заголовок X-XSRF-TOKEN, значение которого должно соответствовать значению XSRF-TOKEN в Set-Cookie. Эти действия позволяют предотвращать атаки по типу CSRF/XSRF.

Удаление сессии (logout)

curl -XPOST -u 'username:AF2C85E7A16E3F0C0AEC28B47DE6AC8098C' https://api.acapella.ru/auth/logout