Перейти к основному содержимому

Метод получения токена авторизации

Общие сведения

Метод позволяет сгенерировать JWE-токен с помощью приватного ключа, полученного в системе RuStore Консоль. Также метод проводит проверку активности владельца приложения.

подсказка

Для успешного выполнения запроса сгенерируйте приватный ключ.

Параметры взаимодействия

POST /public/auth/

АтрибутТипОбяз.РасположениеОписаниеПример
companyIdstringДа, если не указан keyIdbodyid компании123
keyIdstringДа, если не указан companyIdbodyid ключа123
timestampstringДаbodyВремя отправки запроса. Не должно отличаться от текущего серверного времени более, чем на 60 секунд.2022-07-08T13:24:41.8328711+03:00
signaturestringДаbodyRSA-подпись SHA-512 hash от строки, содержащей companyId и timestamp запроса.
Алгоритм создания и проверки подписи: SHA512withRSA.

Пример:
companyId: 123
timestamp: 2022-07-08T13:24:41.8328711+03:00
Строка для вычисления hash: 1232022-07-08T13:24:41.8328711+03:00
SHA-512 hash: 0976c61...033235
N/A
примечание

Если у вас создано более 1 ключа, то необходимо использовать параметр keyId вместо companyId, для авторизации по всем приватным ключам и генерации параметра signature.

В случае проблем с пониманием алгоритма генерации параметра signature используйте .jar файл для генерации данного параметра:

.jar файл для companyId;

.jar файл для keyId.

Передайте ID компании или ID ключа и полученный приватный ключ. В ответ вы получите тело для запроса POST /public/auth/ с параметрами companyId/keyId, timestamp и signature.

подсказка

Сформированный параметр параметра signature действует 1 минуту, так как напрямую зависит от timestamp.

Параметры ответа

АтрибутТипОбязателенОписаниеПример
codestringДаКод ответа.error/OK
messagestringНетРасшифровка кода ответа, в случае ошибки.Range timestamp not valid
body{}objectДаN/AN/A
timestamptimestamptzДаВремя ответа.2022-07-08T13:24:41.8328711+03:00

body{}

АтрибутТипОбязателенОписаниеПример
jwestringДаТокен доступа к RuStore API (содержимое payload ниже). Многоразового использования.eyJjdHkiOiJK…sv16aBl8tTg.VkWuTw
ttlintДаСрок жизни токена в секундах. Срок жизни составляет 900 секунд.900

Возможные ошибки

codemessageОписаниеВозможные действия
400Range timestamp not validПараметр timestamp отличается более чем на 60 секунд.Обновите timestamp и signature
404Company key not foundНе найден закрытый ключ по переданному companyId.Проверьте создан ли закрытый ключ у данной companyId и его актуальность.
400Company key disabledПриватный ключ по переданному companyId удален.Проверьте создан ли приватный ключ у данной companyId и его актуальность.
400Signature encode errorПараметр signature сгенерирован некорректноНеобходимо заново сгенировать параметр signature.
404You cannot use this action because the company is not foundКомпания с переданным companyId отсутвует или не активна.Проверьте параметр companyId на его актуальность.
400You can't use this action because the company is bannedКомпания с переданным companyId заблокирована.Проверьте параметр companyId на его актуальность.
400KeyId or companyId must be not nullОбязательно использование одного из параметров keyId или companyId.Проверьте, что указан параметр keyId или companyId.
400Incorrect usage of companyId. Please use keyIdУ вас создано более одного приватного ключа, необходимо использовать параметр keyId.Воспользуйтесь параметром keyId.

Пример запроса

curl --location 'https://public-api.rustore.ru/public/auth' \
--header 'Content-Type: application/json' \
--data '{
"companyId":"1275328",
"timestamp":"2023-08-11T13:31:17.580+03:00",
"signature":"U4kh.......nFkbuw=="
}

Пример успешного ответа

{
"code": "OK",
"message": null,
"body": {
"jwe": "eyJlbmMiOiJBM......nuuM227D_O1A",
"ttl": 900
},
"timestamp": "2023-08-11T13:31:33.171847393+03:00"
}