在VS Code中动态存储全局变量运行http文件的技术方案问询
用HTTP文件自动管理CSRF、认证令牌等全局认证信息
1. 创建全局环境文件 task.json
在项目目录下创建该文件,用于存储全局变量:
{ "baseUrl": "http://localhost:8000", "csrf": "", "authToken": "" }
2. 编写获取CSRF令牌的请求(自动存储到环境文件)
在HTTP文件中编写请求,通过指令将返回的CSRF令牌存入task.json:
POST {{baseUrl}}/init/get Content-Type: application/json ### @save response.body.csrf task.json#csrf
说明:
@save是REST Client插件的指令,会把响应体里的csrf字段值写入task.json中csrf对应的位置。如果接口返回的CSRF字段名不是csrf,替换为实际字段名即可(比如response.body.csrfToken)。
3. 编写登录请求(自动调用CSRF并存储认证令牌)
登录请求直接引用task.json里的csrf变量,同时将返回的认证令牌存入环境文件:
情况1:认证令牌在响应体中返回
POST {{baseUrl}}/users/login Content-Type: application/json Csrftoken: {{csrf}} {"email":"foo@boomail.com","password":"foo&boo"} ### @save response.body.token task.json#authToken
情况2:认证令牌在Cookie中返回
如果登录后服务器将令牌存在Cookie里(比如Cookie键为auth_token),修改为:
POST {{baseUrl}}/users/login Content-Type: application/json Csrftoken: {{csrf}} {"email":"foo@boomail.com","password":"foo&boo"} ### @save response.cookies.auth_token task.json#authToken
4. 后续请求直接调用全局变量
之后的接口请求可直接使用task.json里的变量,无需手动粘贴:
GET {{baseUrl}}/api/user/profile Content-Type: application/json Csrftoken: {{csrf}} Authorization: Bearer {{authToken}}
注意事项
- 确保使用支持环境变量和
@save指令的HTTP文件工具,比如VS Code的REST Client插件 task.json需与你的HTTP文件在同一目录下,或在指令中指定正确文件路径- 所有字段名要与接口实际返回的一致,比如CSRF字段、认证令牌字段的名称
内容的提问来源于stack exchange,提问作者benny hassan
相关产品推荐
相关产品推荐

