跳到主要内容

授权令牌获取方法

注意

该门户网站正在开发中。文档的完整版本请看这里.

该方法允许使用在RuStore 控制台系统中获取的私钥生成JWE令牌。此外,该方法还对应用程序所有者的活动进行检查。

要成功执行请求,请生成私钥

交互参数

POST /public/auth/
属性类型必填布局描述填写示例
companyIdstring是,如果没有指定keyIdbodyID公司123
keyIdstring是,如果没有指定companyIdbodyID钥123
timestampstringbody发送请求的时间。与当前服务器时间的差异不应超过60秒。2022-07-08T13:24:41.8328711+03:00
signaturestringbodyRSA签名的SHA-512 hash,由包含companyId或keyId和timestamp的字符串生成。创建和检验签名的算法为SHA512withRSA。例如:companyId: 123,timestamp: 2022-07-08T13:24:41.8328711+03:00,用于计算hash的字符串hash:1232022-07-08T13:24:41.8328711+03:00SHA-512hash:0976c61...07d01bae40033235
如果您创建了多于一个密钥,则需要使用keyId参数而不是companyId进行授权,并生成signature参数。N/A

如果您在理解生成signature参数的算法上遇到问题,请使用以下.jar文件来生成该参数:

传递公司ID或密钥ID以及获得的私钥。作为响应,您将获得用于POST /public/auth/请求的请求体,其中包含companyId/keyId、timestamp和signature参数。

生成的signature参数的生成参数有效期为1分钟,因为它直接依赖于timestamp。

响应参数

属性类型必须描述填写示例
codestring响应代码error/OK
messagestring错误情况下的响应代码解释Range timestamp not valid
body{}object
timestamptimestamptz响应时间2022-07-08T13:24:41.8328711+03:00

body

属性类型必须描述示例
jwestringAPI RuStore 访问令牌(payload内容如下)。可多次使用。eyJjdHkiOiJK...sv16aBl8tTg.VkWuTw
ttlint令牌的生命周期(以秒为单位)。生命周期为900秒。900

可能的错误

codemessage描述可行操作
400Range timestamp not validtimestamp参数相差超过60秒更新timestamp和signature
404Company key not found按传递的companyId未找到私钥companyId检查此companyId是否已创建私钥及其有效性
400Company key disabled传递的companyId的私钥已删除检查此companyId是否已创建私钥及其有效性
400Signature encode errorsignature参数生成不正确重新生成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"
}