A Yaak plugin
这是一个为 Yaak API 客户端设计的 KSO-1 签名算法插件,支持 KSO-1 签名和 Access Token 认证。
src/index.ts 中注册插件完整路径(默认):使用完整的 URL 路径仅 API 路径(从 /v7/ 开始):只保留从 /v7/ 开始的 API 路径自定义路径前缀:移除指定的路径前缀插件会自动生成以下 HTTP 头部:
Content-Type:保持原始请求的 Content-Type 或使用默认值 application/jsonX-Kso-Date:RFC1123 格式的当前 UTC 时间X-Kso-Authorization:KSO-1 签名值,格式为 KSO-1 <accessKey>:<signature>Authorization:如果提供了 Access Token,格式取决于选择的 Token 类型KSO-1 签名算法使用 HMAC-SHA256 计算签名,签名字符串的格式为:
官方文档参考:WPS 365 KSO-1 签名算法说明
"KSO-1" + Method + RequestURI + ContentType + KsoDate + sha256(RequestBody)
"KSO-1":固定字符串,签名版本标识Method:HTTP 方法(GET、POST、PUT、DELETE 等)RequestURI:请求的 URI,包含查询参数(支持路径处理模式)ContentType:Content-Type 头部值KsoDate:RFC1123 格式的日期sha256(RequestBody):请求体的 SHA256 哈希值(如果请求体为空则为空字符串)当 API 网关或代理服务器在路径前添加了前缀时,需要正确处理 RequestURI:
完整路径模式(默认):使用完整的 URL 路径
https://10.23.14.56/path3/path4/v7/chats?page_size=10 → /path3/path4/v7/chats?page_size=10仅 API 路径模式:只保留从 /v7/ 开始的 API 路径
https://10.23.14.56/path3/path4/v7/chats?page_size=10 → /v7/chats?page_size=10自定义路径前缀模式:移除指定的路径前缀
/path3/path4,URL 为 https://10.23.14.56/path3/path4/v7/chats?page_size=10 → /v7/chats?page_size=10配置:
AK123456sk098765生成的头部:
Content-Type: application/json
X-Kso-Date: Mon, 02 Jan 2006 15:04:05 GMT
X-Kso-Authorization: KSO-1 AK123456:c46e6c988130818ecba2484d51ac685948fbbef6814602c7874d6bfc41dc17b3
配置:
AK123456sk098765eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9Bearer生成的头部:
Content-Type: application/json
X-Kso-Date: Mon, 02 Jan 2006 15:04:05 GMT
X-Kso-Authorization: KSO-1 AK123456:c46e6c988130818ecba2484d51ac685948fbbef6814602c7874d6bfc41dc17b3
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
配置:
AK123456sk098765my-api-key-123CustomApiKey生成的头部:
Content-Type: application/json
X-Kso-Date: Mon, 02 Jan 2006 15:04:05 GMT
X-Kso-Authorization: KSO-1 AK123456:c46e6c988130818ecba2484d51ac685948fbbef6814602c7874d6bfc41dc17b3
Authorization: ApiKey my-api-key-123
插件提供了两个便捷动作:
yaak-kso-1/
├── src/
│ ├── index.ts # 主入口文件,注册插件
│ ├── plugins/
│ │ ├── kso-1-plugin.ts # KSO-1 插件实现
│ │ └── kso-1-plugin.test.ts # 插件测试
├── package.json
├── tsconfig.json
└── README-kso-1.md # 本文件
# 安装依赖
npm install
# 构建插件
npm run build
# 运行测试
npx vitest run
application/json本项目基于 MIT 许可证开源。
如有问题或建议,请提交 Issue 或联系开发者。