Link Search Menu Expand Document

Авторизация

Для работы с API livedigital необходима авторизация. Авторизация осуществляется с помощью специального токена доступа access_token. Предусмотрены разные типы допуска и разные токены для выполнения различных операций. Сначала необходимо сформировать клиентский токен, который позволяет просматривать публичные сущности, например, комнаты, а также создать пользовательский токен, который можно использовать для создания новых сущностей.

Прежде всего необходимо запросить у разработчика свой идентификатор клиента clientID и секретный ключ client_secret, на основе которых формируется клиентский токен.

Пример clientID, client_secret, полученных от разработчика:

{
 "clientId" : "john-smith-livedigital",
 "clientSecret" : "VTytkTR7ZHH5nLhoWCLjymrUJjKBzfs4"
}

Используя полученный идентификатор клиента и секрет необходимо создать клиентский токен.

Создание клиентского токена

Для получения клиентского токена следует выполнить запрос getAccessToken, передав в параметрах запроса свои clientId и client_secret, полученные ранее. Также в теле запроса передается параметр grant_type со значением client_credentials. Полная спецификация метода приведена в Swagger.

Пример выполнения запроса getAccessToken

POST https://moodhood-api.livedigital.space/v1/auth/token

{
 "client_id": "john-smith-livedigital",
 "client_secret": "VTytkTR7ZHH5nLhoWCLjymrUJjKBzfs4",
 "grant_type": "client_credentials"
}

Результат:

{
  "token_type": "Bearer",
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MGM4YzZmMGE2MGY1Yzc0OGQxZWYyN2UiLCJhdWQiOiJ1c2VyIiwidHlwZSI6ImFjY2Vzc1Rva2VuIiwiY0lkIjoiNjBjOGM2ZjBhNjBmNWM3NDhkMWVmMjdlIiwianRpIjoiNzlhZjgwMDM4YTdmNSIsInNnbiI6IjA5OGY2YmNkNDYiLCJpYXQiOjE2MjM4NDU0MTIsImV4cCI6MTYyNDQ1MDIxMn0.jfzFAs_XM",
  "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MGM4YzZmMGE2MGY1Yzc0OGQxZWYyN2UiLCJhdWQiOiJ1c2VyIiwidHlwZSI6InJlZnJlc2hUb2tlbiIsImNJZCI6IjYwYzhjNmYwYTYwZjVjNzQ4ZDFlZjI3ZSIsImp0aSI6IjU0ZjM4NDQxZmU1MmQiLCJzZ24iOiIwOThmNmJjZDQ2IiwiaWF0IjoxNjIzODQ1NDEyLCJleHAiOjE2MjY0Mzc0MTJ9.Gj8fLaDAX4"
}

В теле ответа возвращается параметр access_token, который содержит значение клиентского токена.

Использование токена

Токен используется при выполнении запросов. Для этого необходимо в заголовки запроса добавить заголовок следующего вида:

Authorization: Bearer <access_token>

Здесь Bearer - это тип используемой авторизации.

Пример кода для cURL с передачей токена в заголовке Authorization:

curl --location --request POST 'https://moodhood-api.livedigital.space/v1/auth/token' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MmFiNWE4NGIwY2U2ZWUzMWIwOTk3YjMiLCJhdWQiOiJ1c2VyIiwidHlwZSI6ImFjY2Vzc1Rva2VuIiwiY0lkIjoiNjJhMDlmYzcwMmY4NmNlMzdhOTM4NmYxIiwianRpIjoiSzZEX1ZNQWRrc25CQnpjaTJnRlFBIiwic2duIjoiYjgxMTBmOGZiNiIsImlhdCI6MTY1NTc0MTEyOSwiZXhwIjoxNjU2MzQ1OTI5fQ.Qy-zwBGwjyWzPF8uXYtla9IOvCfOCeQ9uzCaUo8Q7pM' \
--header 'Content-Type: application/json' \
--data-raw '{
"client_id": "john-smith-livedigital",
"client_secret": "VTytkTR7ZHH5nLhoWCLjymrUJjKBzfs4",
"grant_type": "password",
"username": "test_user@test.test",
"password": "123456"
}'

Создание токена пользователя

Для получения токена пользователя следует выполнить запрос getAccessToken, авторизовавшись с помощью клиентского токена и передав в параметрах запроса свои clientId и client_secret, полученные ранее. Также в теле запроса передаются параметры:

  • grant_type - тип доступа (следует указать password)
  • username - Идентификатор пользователя (В данном случае идентификатором выступает email пользователя).
  • password - пароль пользователя

Полная спецификация метода приведена в Swagger.

Пример выполнения запроса getAccessToken

POST https://moodhood-api.livedigital.space/v1/auth/token

{
 "client_id": "john-smith-livedigital",
 "client_secret": "VTytkTR7ZHH5nLhoWCLjymrUJjKBzfs4",
 "grant_type": "password",
 "username": "test_user@test.test",
 "password": "123456"
}

Пример кода для cURL с передачей клиентского токена в заголовке Authorization:

curl --location --request POST 'https://moodhood-api.livedigital.space/v1/auth/token' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MmFiNWE4NGIwY2U2ZWUzMWIwOTk3YjMiLCJhdWQiOiJ1c2VyIiwidHlwZSI6ImFjY2Vzc1Rva2VuIiwiY0lkIjoiNjJhMDlmYzcwMmY4NmNlMzdhOTM4NmYxIiwianRpIjoiSzZEX1ZNQWRrc25CQnpjaTJnRlFBIiwic2duIjoiYjgxMTBmOGZiNiIsImlhdCI6MTY1NTc0MTEyOSwiZXhwIjoxNjU2MzQ1OTI5fQ.Qy-zwBGwjyWzPF8uXYtla9IOvCfOCeQ9uzCaUo8Q7pM' \
--header 'Content-Type: application/json' \
--data-raw '{
"client_id": "john-smith-livedigital",
"client_secret": "VTytkTR7ZHH5nLhoWCLjymrUJjKBzfs4",
"grant_type": "password",
"username": "test_user@test.test",
"password": "123456"
}'

Результат:

{
   "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MmEwOWZjNzAyZjg2Y2UzN2E5Mzg2ZjEiLCJhdWQiOiJjbGllbnQiLCJ0eXBlIjoiYWNjZXNzVG9rZW4iLCJjSWQiOiI2MmEwOWZjNzAyZjg2Y2UzN2E5Mzg2ZjEiLCJqdGkiOiI1ZGxDZ0pxRzZ1dFFycjNqSTFjSmMiLCJpYXQiOjE2NTUzMTYwNjgsImV4cCI6MTY1NTkyMDg2OH0.5vTOaqS77Yl-4cYT1WM5DdKbo8-I__bxB2DX5kyFaTA",
   "token_type": "Bearer",
   "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MmEwOWZjNzAyZjg2Y2UzN2E5Mzg2ZjEiLCJhdWQiOiJjbGllbnQiLCJ0eXBlIjoicmVmcmVzaFRva2VuIiwiY0lkIjoiNjJhMDlmYzcwMmY4NmNlMzdhOTM4NmYxIiwianRpIjoiYXNhZnJfOUJpM1diUnZlTXFYVFhUIiwiaWF0IjoxNjU1MzE2MDY4LCJleHAiOjE2NTcxMzA0Njh9.tjZrOlt35FliWSNPlWX-piFfIyiYAym72h2Yk-eAsxQ"
}

В результате выполнения запроса возвращается JSON, содержащий значение access_token - это и есть токен пользователя для авторизации. Также метод возвращает значение refresh_token - это токен, который может использоваться для фоновой авторизации пользователя (подробнее см. Добавление комнаты на сайт c помощью iFrame).