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

API 鉴权插件上线!支持用户自定义鉴权插件

0.4.0 版本更新主要围绕这几个方面:

  • 分组独立的 UI,支持分组 API 鉴权

  • API 测试支持继承 API 鉴权

  • 支持用户自定义鉴权插件,仅需部分配置即可发布鉴权插件

开始介绍功能之前,我想先和大家分享一下鉴权功能设计的一些思考。

其实和大部分接口测试前要登录类似,鉴权是身份验证的一种方式。在大多数情况下,鉴权信息一般是:

  1. 对大多数 API 生效而不是仅某几个 API 需要鉴权

  2. 测试使用不需要显示在文档信息中,一般会有个说明文件全局说明此项目下的 API 使用什么鉴权

以下三种设计都可以满足在测试前自动鉴权的需求:

  • 鉴权信息配置在分组/项目中,内部的 API 从父级继承鉴权信息

  • 每个 API 配置独立的鉴权

  • 在环境中配置鉴权信息,选中后 API 引用环境信息鉴权

 

我们如何判断要将这个功能放在哪里呢?

我们先来分析分组和环境的使用范围:

  • 分组:对一系列 API 生效,适合放置鉴权/登录等一系列 API 都可能用到的前置条件,也可以设置公共的断言(例如状态码等于 200)

  • 环境:灵活的全局变量用法,和 API 没有强关联关系,可以根据按不同用户创建(例如 Scar 本地环境/Jack 本地环境),也可以按照不同的服务器环境创建,适合放一些和用户相关联的信息,例如每个测试人员可能都会使用自己的鉴权的账号、密码。

所以一系列 API 都能用到的公共配置框架,我们应该放到项目/分组去实现,同时通过环境来填写配置变量数据,这样可以复用大家的设置,让团队内的 API 和测试数据更方便维护。

基于上面考虑,我们的鉴权支持在分组配置,我们继续来看看如何使用~

选中相应的分组-选中鉴权,因为鉴权值涉及到敏感数据,为了在协作环境中工作时保持此数据安全,我们建议使用全局变量。

 

添加环境,配置全局变量,添加后程序会自动选中这个环境。

 

再次测试,可以看到鉴权已经成功!

 

当然啦,除了官方提供的 Basic、JWT ,其实还有很多其他鉴权方式例如 NTLM、微信签名、AWS 签名等等。

 

所以我们将鉴权功能设计成了可拓展的!!

例如这就是官方的 Basic Auth 鉴权插件代码,核心逻辑不到 30 行,非常简单易懂。

 

本月官方也计划支持更多鉴权插件:

  • JWT

  • Bear Token

  • APIKey

  • OAuth 2.0

了解 Postcat:

Postcat 是一个强大的开源、跨平台(Windows、Mac、Linux、Browsers...)的 API 开发测试工具,支持 REST、Websocket 等协议(即将支持 GraphQL、gRPC、TCP、UDP),帮助你加速完成 API 开发和测试工作。

Postcat 核心功能:

  1. API 文档管理:可视化 API 设计,生成 API 文档

  2. API 测试:自动生成测试参数,自动生成测试用例,可视化数据编辑

  3. 插件拓展:众多插件扩展产品功能,打造属于你和团队的 API 开发平台

  4. Mock:根据文档自动生成Mock,或创建自定义 Mock 满足复杂场景

  5. 团队协作:既能实现API 分享也能可以创建云空间共同协作

Postcat 优势:

  1. 免登录即可测试:省去繁琐的验证登录的操作

  2. 界面简洁:没有冗余的功能与复杂选项

  3. 免费:中小团队以及个人使用

  4. 丰富的插件:支持数据迁移、主题、API 安全等高达22款插件

  5. 国产:能更好的理解国内用户的需求,与开发团队沟通无障碍

  6. 完善的用户文档:跟着操作就能快速上手

多提 Issue !多反馈!

在使用过程中有任何疑问,可以进群交流:

 

也可以在线提 Issue(强烈推荐这种开源的方式),提问题本身就已经在贡献社区了:

https://github.com/Postcatlab/postcat/issues

 

如果喜欢,不妨Star 支持一下

这个项目是开源的,如果你觉得这个项目还不错的话,不妨点个 Star 支持一下!

Github :

https://github.com/Postcatlab/postcat

Gitee:

https://gitee.com/eolink_admin/postcat

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

相关文章:

  • 2023年NOC大赛加码未来编程赛道-初赛-Python(初中组-卷1)
  • day21—编程题
  • 【数据结构】栈与队列经典选择题
  • Linux常用命令详细示例演示
  • 9-数据可视化-动态柱状图
  • Linux系统【centos7x】安装宝塔面板教程
  • 蓝易云:Linux系统【Centos7】top命令详细解释
  • Muduo库源码剖析(一)——Channel
  • Java多线程:定时器Timer
  • 设计模式---装饰模式
  • 跨时钟域传输数据——单bit和多bit信号(总结)
  • 高并发下如何保证接口幂等
  • Retrofit源码分析小结
  • 【从零开始学习 UVM】11.4、UVM Register Layer —— UVM Register Model 实战项目(RAL实战,交通灯为例)
  • session和token的登录机制
  • 大厂研发成本大曝光,研发占大头
  • python爬虫第一节基础概念
  • web学习---Vue---笔记(1)
  • 【前端面试题——微信小程序】
  • gpt模型训练-gpt3模型详解
  • vue尚品汇商城项目-day04【27.分页器静态组件(难点)】
  • 使用SeaFile搭建私有云盘并公网访问【cpolar内网穿透】
  • 蓝桥杯第26天(Python)考前挣扎
  • WuThreat身份安全云-TVD每日漏洞情报-2023-04-04
  • 【C++】Step by Step的格式化代码风格是这样的吗?
  • aspnet030高校学生团体管理系统sqlserver
  • 学习HM微博项目第10天
  • 0204强连通性-有向图-数据结构和算法(Java)
  • ElasticSearch集群
  • 音视频基础概念(6)——视频基础