授权令牌获取方法
注意
该门户网站正在开发中。文档的完整版本请看这里.
该方法允许使用在RuStore 控制台系统中获取的私钥生成JWE令牌。此外,该方法还对应用程序所有者的活动进行检查。
要成功执行请求,请生成私钥。
交互参数
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或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。
响应参数
属性 | 类型 | 必须 | 描述 | 填写示例 |
---|---|---|---|---|
code | string | 是 | 响应代码 | error/OK |
message | string | 否 | 错误情况下的响应代码解释 | Range timestamp not valid |
body{} | object | 是 | ||
timestamp | timestamptz | 是 | 响应时间 | 2022-07-08T13:24:41.8328711+03:00 |
body
属性 | 类型 | 必须 | 描述 | 示例 |
---|---|---|---|---|
jwe | string | 是 | API RuStore 访问令牌(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 | 检查此companyId是否已创建私钥及其有效性 |
400 | Company key disabled | 传递的companyId的私钥已删除 | 检查此companyId是否已创建私钥及其有效性 |
400 | Signature encode error | signature参数生成不正确 | 重新生成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"
}