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
Аутентификация через cookie¶
При создании сессии указываем параметр 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