Метод получения токена авторизации
Общие сведения
Метод позволяет сгенерировать JWE-токен с помощью приватного ключа, полученного в системе RuStore Консоль. Также метод проводит проверку активности владельца приложения.
Для успешного выполнения запроса сгенерируйте приватный ключ.
Параметры взаимодействия
POST /public/auth/
Атрибут | Тип | Обяз. | Расположение | Описание | Пример |
---|---|---|---|---|---|
companyId | string | Да, если не указан keyId | body | id компании | 123 |
keyId | string | Да, если не указан companyId | body | id ключа | 123 |
timestamp | string | Да | body | Время отправки запроса. Не должно отличаться от текущего серверного времени более, чем на 60 секунд. | 2022-07-08T13:24:41.8328711+03:00 |
signature | string | Да | body | RSA-подпись 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
.
Параметры ответа
Атрибут | Тип | Обязателен | Описание | Пример |
---|---|---|---|---|
code | string | Да | Код ответа. | error /OK |
message | string | Нет | Расшифровка кода ответа, в случае ошибки. | Range timestamp not valid |
body{} | object | Да | N/A | N/A |
timestamp | timestamptz | Да | Время ответа. | 2022-07-08T13:24:41.8328711+03:00 |
body
Атрибут | Тип | Обязателен | Описание | Пример |
---|---|---|---|---|
jwe | string | Да | Токен доступа к RuStore API (содержимое payload ниже). Многоразового использования. | eyJjdHkiOiJK…sv16aBl8tTg.VkWuTw |
ttl | int | Да | Срок жизни токена в секундах. Срок жизни составляет 900 секунд. | 900 |
Возможные ошибки
code | message | Описание | Возможные действия |
---|---|---|---|
400 | Range timestamp not valid | Параметр timestamp отличается более чем на 60 секунд. | Обновите timestamp и signature |
404 | Company key not found | Не найден закрытый ключ по переданному companyId . | Проверьте создан ли закрытый ключ у данной companyId и его актуальность. |
400 | Company key disabled | Приватный ключ по переданному companyId удален. | Проверьте создан ли приватный ключ у данной companyId и его актуальность. |
400 | Signature encode error | Параметр signature сгенерирован некорректно | Необходимо заново сгенировать параметр signature . |
404 | You cannot use this action because the company is not found | Компания с переданным companyId отсутвует или не активна. | Проверьте параметр companyId на его актуальность. |
400 | You can't use this action because the company is banned | Компания с переданным companyId заблокирована. | Проверьте параметр companyId на его актуальность. |
400 | KeyId or companyId must be not null | Обязательно использование одного из параметров keyId или companyId . | Проверьте, что указан параметр keyId или companyId . |
400 | Incorrect 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"
}