跳转至

验证



POST /api/v1/workspace/accesskey/verify

概述

验证当前 API Key 或 AccessKey SK token

Body 请求参数

参数名 类型 必选 说明
version any 新版 SK token 协议版本;传 20260617 时只需 timestamp,不再要求 nonce/signature
例子: 20260617
允许为空: True
timestamp integer Y 毫秒时间戳,服务端只接受 10 分钟内的请求
例子: 1711111111000
允许为空: False
nonce string 旧版签名协议字段;客户端生成的随机字符串,长度 16-128,只允许字母、数字、.、_、:、-
例子: 2b7c3a9e4f6545b7aef09a23f9e0c001
允许为空: True
signature string 旧版签名协议字段;使用 sk 对固定签名串计算得到的 64 位 HMAC-SHA256 hex 小写字符串
例子: 3b4d0b1e8f3b6d2d9f30e6f2b7f08f0b2c4f0e9f4f9a6d6c6c7a8b9c0d1e2f3a
允许为空: True

参数补充说明

该接口用于验证当前请求头 DF-API-KEY 中的 sk。验证通过后返回当前 API Key 的所属账号、角色和权限信息,响应中不返回 ak/sk 字段。

version=20260617 新版协议

  • 请求头 DF-API-KEY 必须传当前 OpenAPI 调用使用的 sk
  • 请求体传 version=20260617timestamp
  • timestamp 为毫秒时间戳,服务端只接受与当前时间相差不超过 10 分钟的请求。
  • 新版不再要求 noncesignature
  • version 建议传数字 20260617,服务端兼容字符串 "20260617"

旧版签名算法

  • 请求头 DF-API-KEY 必须传当前 OpenAPI 调用使用的 sk
  • 未传 version=20260617 时,请求体继续按旧版传 timestampnoncesignature
  • timestamp 为毫秒时间戳,服务端只接受与当前时间相差不超过 10 分钟的请求。
  • nonce 为客户端生成的随机字符串,长度 16-128,只允许字母、数字、._:-;同一 API Key 记录的同一个 nonce 在 10 分钟内只能使用一次。
  • 签名算法固定为 HMAC-SHA256,输出 64 位 hex 小写字符串。
  • 签名串固定为:ak=<ak>&method=POST&nonce=<nonce>&path=/api/v1/workspace/accesskey/verify&timestamp=<timestamp>
  • 上述 <ak> 为调用方本地持有、需要验证是否与当前 sk 配对的 ak,不放入请求头或请求体。
  • signature = HMAC-SHA256-HEX(secret=<sk>, message=<签名串>)

请求例子

curl 'https://openapi.guance.com/api/v1/workspace/accesskey/verify' \
  -H 'DF-API-KEY: <sk>' \
  -H 'Content-Type: application/json;charset=UTF-8' \
  --data-raw '{"version": 20260617, "timestamp": 1711111111000}' \
  --compressed

旧版签名调用:

curl '<Endpoint>/api/v1/workspace/accesskey/verify' \
  -H 'DF-API-KEY: <sk>' \
  -H 'Content-Type: application/json;charset=UTF-8' \
  --data-raw '{"timestamp": 1711111111000, "nonce": "2b7c3a9e4f6545b7aef09a23f9e0c001", "signature": "3b4d0b1e8f3b6d2d9f30e6f2b7f08f0b2c4f0e9f4f9a6d6c6c7a8b9c0d1e2f3a"}' \
  --compressed

响应

{
    "code": 200,
    "content": {
        "uuid": "wsak_xxx",
        "name": "func-ak",
        "workspaceUUID": "wksp_xxx",
        "createdWay": "manual",
        "accountUUID": "",
        "accountInfo": null,
        "effectiveAccountUUID": "wsak_xxx",
        "roles": [
            {
                "uuid": "readOnly",
                "name": "只读成员"
            }
        ],
        "permissions": [
            "data.query"
        ],
        "rolePermissions": {
            "readOnly": [
                "data.query"
            ]
        }
    },
    "errorCode": "",
    "message": "",
    "success": true,
    "traceId": "TRACE-XXXX"
}

文档评价

文档内容是否对您有帮助? ×