Авторизация API-запроса¶
Токен для доступа¶
Для того чтобы любой вызов API Watcher был выполнен, в заголовке (HTTP Header) необходимо указать JWT-токен. Чтобы получить этот токен, используйте соответствующий запрос:
- Для Watcher Client API: POST /watcher/client-api/v3/login
- Для Watcher Admin API: POST /watcher/admin-api/v3/login
Пример получения токена:
curl -X POST -u user:password "http://localhost:80/watcher/client-api/v3/login"
В ответе на этот запрос вернется два параметра:
access_token
— это JWT-токен для выполнения API-запросов. Время действия токена ограничено и закодировано в самом токене.refresh_token
— это токен с длительным временем действия, с помощью которого можно запрашивать новыйaccess_token
. Когда вы реализуете свое приложение, сохраняйтеrefresh_token
, например, в базу данных, чтобы использовать его при необходимости.
Пример использования access_token
:
curl -X GET "http://localhost:80/watcher/client-api/v3/streams" \
-H "Authorization: Bearer <access_token>" \
Запрос токена без логина и пароля¶
Когда сервер вернет HTTP 401
в ответ на попытку выполнить запрос с access_token
, запросите новый токен с помощью refresh_token
из ответа на запрос /login
:
curl -X POST "http://localhost:80/watcher/client-api/v3/login" \
-H "Authorization: Bearer <refresh_token>" \
Таким образом пользователю не придется снова вводить логин и пароль.
Авторизация в API v2¶
Старое API v2 предлагало три способа авторизации:
-
Системный x-vsaas-api-key из настроек Watcher. Можно выполнять все запросы.
curl -v -X GET -H 'x-vsaas-api-key: 7c75da8fb314183f1f825271898a3687' http://127.0.0.1/vsaas/api/v2/cameras
-
x-vsaas-session, возвращаемый в ответ на запрос
/vsaas/api/v2/auth/login
в параметре session. Можно выполнять запросы с правами пользователя.curl -v -X GET -H 'x-vsaas-session: W98uOoiMFf46SyE78RjWIZjsaVM' http://127.0.0.1/vsaas/api/v2/auth/whoami
-
Пользовательский x-vsaas-api-key из профиля пользователя, используемый вместе с параметром x-vsaas-user: имя пользователя. Можно выполнять запросы с правами пользователя.
curl -v -X GET -H 'x-vsaas-api-key: M8rT4KvfT3tZpCj34Qbk5CEt' -H 'x-vsaas-user: user1' http://127.0.0.1/vsaas/api/v2/cameras