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

如何使用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)}

图片

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")

图片

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • vue3 + elementplus + sortablejs实现树形表格拖拽排序
  • 携手SelectDB,观测云实现性能与成本的双重飞跃
  • Docker搭建 RabbitMQ 最新版
  • 论文复现:考虑电网交互的风电、光伏与电池互补调度运行(MATLAB-Yalmip-Cplex全代码)
  • jupyter安装与使用——Ubuntu服务器
  • 【MATLAB源码-第231期】基于matlab的polar码编码译码仿真,对比SC,SCL,BP,SCAN,SSC等译码算法误码率。
  • C++ 面试模拟02
  • 【AI创作组】Matlab中进行符号计算
  • 【目标检测】隐翅虫数据集386张VOC+YOLO
  • 【ArcGIS微课1000例】0122:经纬网、方里网、参考格网绘制案例教程
  • UE4_后期处理七—仿红外线成像效果
  • MIME 类型
  • Ubuntu环境切换到服务器某个用户后source等命令和Tab快捷补全都用不了了,提示没找到,但root用户可以
  • java并发编程笔记 之 线程和进程
  • Unity 的Event的Use()方法
  • @jsonView过滤属性
  • export和import的用法总结
  • gcc介绍及安装
  • java2019面试题北京
  • JavaScript的使用你知道几种?(上)
  • Java的Interrupt与线程中断
  • Magento 1.x 中文订单打印乱码
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • React组件设计模式(一)
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 从零开始的无人驾驶 1
  • 浏览器缓存机制分析
  • 普通函数和构造函数的区别
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 区块链将重新定义世界
  • 入门到放弃node系列之Hello Word篇
  • 思考 CSS 架构
  • 自动记录MySQL慢查询快照脚本
  • Prometheus VS InfluxDB
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (2.2w字)前端单元测试之Jest详解篇
  • (MTK)java文件添加简单接口并配置相应的SELinux avc 权限笔记2
  • (八十八)VFL语言初步 - 实现布局
  • (笔试题)合法字符串
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (每日一问)计算机网络:浏览器输入一个地址到跳出网页这个过程中发生了哪些事情?(废话少说版)
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (南京观海微电子)——COF介绍
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (图)IntelliTrace Tools 跟踪云端程序
  • (转)memcache、redis缓存
  • (转)原始图像数据和PDF中的图像数据
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .NET Core WebAPI中封装Swagger配置
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例