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

HTTP请求中@符号的含义及无客户端时Express+Node.js后端JWT令牌测试问题咨询

关于Express后端JWT测试及HTTP文件语法的解惑

首先,咱们先把你疑惑的那些特殊语法讲明白——这些不是标准HTTP协议的内容,而是API测试工具(比如VS Code的REST Client插件、JetBrains系列IDE的HTTP Client) 支持的.http/.rest文件专用语法,用来实现请求间的数据传递,非常适合后端接口的自动化测试。

1. # @name loginAdminCorrect 是什么?重要吗?

这行是给你的登录请求起一个唯一的名字,非常重要!后面的请求要引用这个登录请求的响应数据,全靠这个名字来定位。没有它,后续的变量赋值就找不到对应的请求结果了。

2. @adminToken = {{loginAdminCorrect.response.headers.Authorization}} 的作用

这行是工具的变量赋值语法:

  • @ 是用来声明自定义变量的前缀,这里声明了一个叫adminToken的变量
  • {{loginAdminCorrect.response.headers.Authorization}} 是引用语法,意思是:找到刚才命名为loginAdminCorrect的请求的响应,取出它的Authorization响应头的值,把这个值赋给adminToken变量

你的服务器会在登录成功后返回Authorization: Bearer <你的JWT令牌>,这行代码就是自动把这个真实生成的令牌存起来,给后续请求用,完全不是伪令牌!

3. 怎么用真实令牌完成后端测试?

你不需要写假令牌的逻辑,只要用支持HTTP文件的工具,按步骤操作就行:

  • 把老师给的测试代码整理成一个.http文件(比如test.http),内容如下:
###
# @name loginAdminCorrect
GET http://localhost:999/authenticate
Authorization: Basic YWRtaW46MTIz
@adminToken = {{loginAdminCorrect.response.headers.Authorization}}

### 携带管理员令牌列出所有用户
GET http://localhost:999/users
Authorization: {{adminToken}}
  • 确保你的Express服务器在localhost:999运行
  • 用VS Code的REST Client插件(或者JetBrains IDE的HTTP Client)打开这个文件,点击第一个请求上方的"Send Request"按钮,运行登录请求。工具会自动把返回的JWT令牌存到adminToken里
  • 然后点击第二个请求的"Send Request"按钮,工具会自动把{{adminToken}}替换成刚才存的真实令牌,这样就用真实生成的JWT完成权限验证测试了

补充:为什么去掉@相关部分也能运行?

因为单独跑登录请求的时候,服务器本身就会验证凭证并返回令牌,和变量赋值无关——但如果要自动把令牌传递给后续请求,就必须保留@相关的语法,不然你得手动复制令牌到第二个请求的Authorization头里,效率很低。

这样你就能用真实的JWT令牌测试后端的权限控制逻辑,完全符合你的需求,不需要写任何假令牌的不安全代码~

内容的提问来源于stack exchange,提问作者Lucas Knäuper

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 22:48:10