fix: 统一签名策略,签名不包含body

根本原因:
- 前端签名生成时包含body
- 后端WebFlux验证时body为空
- 导致签名不匹配,认证失败

修复方案:
- 修改前端signature.ts,签名时不包含body
- 修改测试role-auth-manager.ts,与前端保持一致
- 与后端WebFlux实现保持一致

影响范围:
- 所有需要签名验证的API请求
- Token注入登录测试
- 用户管理相关测试
This commit is contained in:
张翔
2026-04-05 07:47:28 +08:00
parent a1497a480b
commit 04e385a0a2
2 changed files with 2 additions and 2 deletions
@@ -39,7 +39,7 @@ export class RoleAuthManager {
method.toUpperCase(),
path,
'',
body || '',
'',
timestamp.toString(),
nonce
].join('\n');
+1 -1
View File
@@ -16,7 +16,7 @@ export function generateSignature(
timestamp: number,
nonce: string
): string {
const stringToSign = buildStringToSign(method, path, query, body, timestamp, nonce)
const stringToSign = buildStringToSign(method, path, query, '', timestamp, nonce)
const signature = CryptoJS.HmacSHA256(stringToSign, SIGNATURE_SECRET)
const signatureBase64 = CryptoJS.enc.Base64.stringify(signature)