当前位置: 首页 > news >正文

一文1600字使用Postman搞定各种接口token实战(建议收藏)

现在许多项目都使用jwt来实现用户登录和数据权限,校验过用户的用户名和密码后,会向用户响应一段经过加密的token,在这段token中可能储存了数据权限等,在后期的访问中,需要携带这段token,后台解析这段token才允许用户访问接口。

01、设置Bearer Token

如果后端项目使用的是Bearer Token进行安全认证,那么使用Postman这样操作。

设置你的环境变量

点击右上角的小眼睛,然后点击Add,添加

填写你的环境名和你的变量名

选择你新建的环境

项目集合设置认证方式及环境变量

登录接口的脚本

这个脚本的意思就是说,你的用户名和密码正确的前提下,访问后端接口会给你返回一个Token,你将这个Token储存在刚刚设置好的环境变量中,当你用别的接口访问时,由于整个项目刚刚已经设置好了访问权限使用的Token,所以你所有的接口都会携带这个token去访问,从而数据权限被后台接收和使用

// pm代表的就是postman,使用js编写脚本即可const responseJson = pm.response.json();console.log('-----------',responseJson)const accesssToken = responseJson.resultif('200'==responseJson.code){pm.environment.set('accessToken',accesssToken)}

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn999】

02、通过脚本设置Headers

Spring Security的在访问时会向请求头添加一个accessToken,可以使用脚本在集合批量添加,也可以对每一个Api手动添加Header,不过那样会很麻烦,所以我这边用脚本批量添加的方便方式。

登录请求设置环境变量

从登录结果获取accessToken,将accessToken设置到环境变量中

脚本如下

const responseJson = pm.response.json();console.log('-----------',responseJson)const accesssToken = responseJson.resultif('200'==responseJson.code){pm.environment.set('accessToken',accesssToken)}

设置集合的发送请求脚本

点选集合->进入Pre-request Scrip(请求前脚本)页签->编写脚本

脚本如下:

console.log("----addHeader------", pm.environment.get("accessToken"));var accessToken = pm.environment.get("accessToken");// 所有请求在请求前都在请求头中设置accessTokenpm.request.addHeader("accessToken:"+accessToken);这样设置后,所有的请求都会携带登录的accessToken了。

登录接口抹除accessToken

因为我们项目的过滤器没有设置解析accessToken的脏数据,所以一旦有老的token,就会报错超时,所以登录接口在访问时一定要抹除accessToken,登录接口的Pre-request设置脚本如下:

// 移除登录接口的accessToken, 防止过期的token被过滤器解析,影响登录接口pm.request.headers.remove("accessToken")

END今天的分享就到此结束了,点赞关注不迷路~ 

http://www.lryc.cn/news/221487.html

相关文章:

  • Vue自定义组件学习笔记
  • 王道p18 第12题假设 A中的 n个元素保存在一个一维数组中,请设计一个尽可能高效的算法,找出A的主元素。若存在主元素,则输出该元素:否则输出-1
  • OpenTiny Vue 3.11.0 发布:增加富文本、ColorPicker等4个新组件,迎来了贡献者大爆发!
  • vivado查看报告和消息5
  • 基于javaweb+mysql的jsp+servlet学生成绩管理系统(管理员、教师、学生)
  • 基于卷积优化算法的无人机航迹规划-附代码
  • 科技云报道:不卷自研大模型,金山办公如何创新生成式AI?
  • 3BHE022291R0101 PCD230A 专注于制造卓越人工智能
  • 小程序 scroll-view 性能问题
  • 【移远QuecPython】EC800M物联网开发板的硬件PWM和PWM输出BUG
  • OverDraw的优化
  • 数据结构—字符串
  • inne所属公司抢注“童年时光”商标仍被冻结
  • 20231106-前端学习加载和视频球特效
  • Arrays.asList() 和 List.of() 的列表之争
  • 基于51单片机的停车场管理系统仿真电路设计
  • APIView单一资源的查看更新删除
  • UML--类图的表示
  • JVM字节码文件浅谈
  • DBever 连接trino时区问题 The datetime zone id ‘GMT+08:00‘ is not recognised
  • xlua源码分析(二)lua Call C#的无wrap实现
  • MySql优化经验分享
  • 【Linux】:使用git命令行 || 在github创建项目 || Linux第一个小程序——进度条(进阶版本)
  • Kotlin apply 交换两个数
  • Android jetpack : Navigation 导航 路由 、 单个Activity嵌套多个Fragment的UI架构方式
  • 【react】在react中祖父、父亲、孙子组件层层解构其余属性props时报错children.forEach is not function
  • P9831 [ICPC2020 Shanghai R] Gitignore
  • LinkList集合方法(自写)
  • Ansible playbook自动化运维工具详解
  • 图像切分:将一张长图片切分为指定长宽的多张图片