You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

测试时如何生成合法mock JWT token解决jwt malformed报错

合法mock JWT生成及测试修正方案

你遇到的报错是因为发送的随机字符串不符合JWT的标准结构,也没有使用业务代码中配置的config.secretSessionKey签名,所以jwt.verify校验直接抛出格式错误,按以下两步调整即可跑通测试:

1. 生成符合要求的mock sessionToken

直接使用和业务代码相同的JWT库(比如常用的jsonwebtoken npm包)生成合法token,生成时必须匹配两个核心条件:

  • 签名密钥和业务代码的config.secretSessionKey完全一致
  • payload中携带sessionID字段,匹配后续代码取值逻辑
    代码示例:
const jwt = require('jsonwebtoken');
// 替换为你业务代码中实际的secretSessionKey配置值
const mockSecret = config.secretSessionKey; 
// 自定义需要的sessionID值
const mockPayload = {
  sessionID: 'test-session-id-123456'
};
// 生成合法JWT
const mockSessionToken = jwt.sign(mockPayload, mockSecret);

2. 修正测试请求的传参格式

你当前的测试代码直接send(sessionToken)会把token作为整个请求体发送,不符合业务代码从req.body.sessionToken取值的逻辑,需要调整为发送带sessionToken字段的JSON对象:

return request
  .post("/authenticate")
  // 修正为传入JSON对象,key为sessionToken
  .send({ sessionToken: mockSessionToken })
  .then(response => {
    let body = JSON.parse(response.text);
    // 后续断言逻辑
  })

内容的提问来源于stack exchange,提问作者McD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 03:06:08