Skip to content

Авторизация API-запроса

Токен для доступа

Для того чтобы любой вызов API Watcher был выполнен, в заголовке (HTTP Header) необходимо указать JWT-токен. Чтобы получить этот токен, используйте соответствующий запрос:

Пример получения токена:

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>" \
    -H "Content-Type: application/json"

Запрос токена без логина и пароля

Когда сервер вернет HTTP 401 в ответ на попытку выполнить запрос с access_token, запросите новый токен с помощью refresh_token из ответа на запрос /login:

curl -X POST "http://localhost:80/watcher/client-api/v3/login" \
-H "Authorization: Bearer <refresh_token>" \
-H "Content-Type: application/json"

Таким образом пользователю не придется снова вводить логин и пароль.

Авторизация в API v2

Старое API v2 предлагало три способа авторизации:

  1. Системный x-vsaas-api-key из настроек Watcher. Можно выполнять все запросы.

    curl -v -X GET -H 'x-vsaas-api-key: 7c75da8fb314183f1f825271898a3687' -H 'content-type: application/json' http://127.0.0.1/vsaas/api/v2/cameras

  2. x-vsaas-session, возвращаемый в ответ на запрос /vsaas/api/v2/auth/login в параметре session. Можно выполнять запросы с правами пользователя.

    curl -v -X GET -H 'x-vsaas-session: W98uOoiMFf46SyE78RjWIZjsaVM' -H 'content-type: application/json' http://127.0.0.1/vsaas/api/v2/auth/whoami

  3. Пользовательский x-vsaas-api-key из профиля пользователя, используемый вместе с параметром x-vsaas-user: имя пользователя. Можно выполнять запросы с правами пользователя.

    curl -v -X GET -H 'x-vsaas-api-key: M8rT4KvfT3tZpCj34Qbk5CEt' -H 'x-vsaas-user: user1' -H 'content-type: application/json' http://127.0.0.1/vsaas/api/v2/cameras