Swagger ui测试中的验证 apikey
Swagger ui测试中的验证 apikey
我们使用swagger 用来呈现webapi的接口,除了可以看到接口的说明和参数说明,还可以进行测试。但是我们的接口通常是有验证的,不是随便就能调用的,这时候用swagger怎么办呢?
- 修改SwaggerConfig文件
- 添加api-key-header-auth.js文件
- 修改api-key-header-auth.js 文件
- 测试
1. 修改SwaggerConfig文件
取消这个的注释,使生效。 c.BasicAuth("basic") .Description("Basic HTTP Authentication");
取消这个的注释,使生效。 c.InjectJavaScript(thisAssembly, "wang2650.CustomContent.api-key-header-auth.js"); wang2650为项目名
2. 根目录下创建 CustomContent 文件夹,添加api-key-header-auth.js文件 ,该段js会在调用接口的时候,在head中加入一个名为Authorization的key,内容为apikey的文本框中的值。
(function () {
$(function () {
$('#input_apiKey').show();
$('#input_apiKey').on('change', function () {
var key = this.value;
if (key && key.trim() !== '') {
swaggerUi.api.clientAuthorizations.add("key", new SwaggerClient.ApiKeyAuthorization("Authorization", key, "header"));
}
});
});
})();
3. 修改api-key-header-auth.js 文件 文件属性 要选择嵌入资源
Authorization 文件中的这个名可以任意定义,我通常传token
4.测试 假设你用DelegatingHandler的方式验证 request.Headers.Authorization 就是apikey。
public class AuthenticationMessageHandler : DelegatingHandler {
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request,
CancellationToken cancellationToken)
{
if (request.Headers.Authorization == null)
{
var reply = request.CreateResponse(HttpStatusCode.Unauthorized, "acc_token验证错误");
return Task.FromResult(reply);
}
//token验证后,通过token获取用户信息,此处直接用apike做为用户的身份证
var principal = new ClaimsPrincipal(new ClaimsIdentity(new[]
{
new Claim(ClaimTypes.Name, request.Headers.Authorization.ToString())
}, "Basic"));
// authorize attribute
request.GetRequestContext().Principal = principal;
}
}
[HttpGet]
public string GetId(dynamic id) {
return "用户id:" + this.User.Identity.Name; //显示api的值
}
运行网站,会在头部出现一个apikey的文本框,到这,就完了。你可以开车了。
Swagger ui测试中的验证 apikey的更多相关文章
- ABP 用swagger UI测试API报401无权限访问问题
问题描述: 当我们用swagger UI对Web API 进行测试时报401错误 我们点开GET /api/services/app/Role/GetAll,输入参数 点击Try it out!按钮, ...
- Appium 在 Android UI 测试中的应用
原文地址:https://blog.coding.net/blog/Appium-Android-UI Android 测试工具与 Appium 简介 Appium 是一个 C/S 架构的,支持 An ...
- selenide 自动化UI测试中Configuration全局配置项目
selenide 在测试过程中需要设置许多的默认值,方便在测试过程中进行和很好的使用.下面我们在selenide中的api引用过来看看! static Configuration.AssertionM ...
- Swagger UI改造 增加 Token验证、显示控制器注释、自定义泛型缓存应用、
/// <summary> /// Swagger 增加 Token 选项和控制器描述 /// </summary> public class CustomOperationF ...
- svn利用钩子post-commit自动更新到线上测试服务器(测试中未验证)
创建一个新的版本库: [root@centos03 svn]# pwd /home/svn [root@centos03 svn]# svnadmin create webtest [root@cen ...
- Swagger UI教程 API 文档神器 搭配Node使用
ASP.NET Web API 使用Swagger生成在线帮助测试文档 Swagger 生成 ASP.NET Web API 前言 swagger ui是一个API在线文档生成和测试的利器,目前发现最 ...
- ABP框架 - Swagger UI 集成
文档目录 本节内容: 简介 Asp.net Core 安装 安装Nuget包 配置 测试 Asp.net 5.x 安装 安装Nuget包 配置 测试 简介 来自它的网页:“...使用一个Swagger ...
- WWDC15 Session笔记 - Xcode 7 UI 测试初窥
https://onevcat.com/2015/09/ui-testing/ WWDC15 Session笔记 - Xcode 7 UI 测试初窥 Unit Test 在 iOS 开发中已经有足够多 ...
- ASP.NET Core 在 Swagger UI 中显示自定义的 Header Token
Swagger 是个好东西,对于前后端分离的网站来说,不仅是提高前后端开发人员沟通效率的利器,也大大方便了后端人员测试 API.有时候,API 中可能需要在 Header 中设置认证参数,比如 aut ...
随机推荐
- String、StringBuffer、StringBuilder和StringTokenizer的区别
1)String.StringBuffer.StringBuilder都用于字符串操作,其中,String是不可变类,即String对象一旦被创建,其值不能被修改,而StringBuffer和Stri ...
- How to return AJAX errors from Laravel Controller?
Questions: I am building a REST API with Laravel 5. In Laravel 5, you can subclassApp\Http\Requests\ ...
- Python之路(第十九篇)hashlib模块
一.hashlib模块 HASH Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值 ...
- [Hbase]Hbase章2 Hbase读写过程解析
写数据 Hbase使用memstore和storefile存储对表的更新.数据在更新时首先写入hlog和memstore,memstore中的数据是排序的,当memstore累计到一定的阀值时,就会创 ...
- js处理img标签加载图片失败,显示默认图片
1.第一种方法: 如果已经引入了jquery插件,就很好办.没有的话,如果实在需要,可以附上代码: script(type='text/javascript', src="http://aj ...
- VB.NET中的DLL编写和调用的最简单示例
DLL(动态链接库)是一个很有用的东西,在开发大项目的时候显得非常重要,因为多人合作开发时,可以给每个人分配一个任务,用DLL完成,最后组合起来,就不会出现互相冲突的问题.这里给出最简单的DLL编写与 ...
- 数字统计(NOIP2010)
题目链接:数字统计 这题很水. 思路就是:枚举每一个区间内的数,然后对于每一个数,每个位去判断是否为2,就行了. 下面上代码: #include<bits/stdc++.h> using ...
- python中的函数嵌套
一.函数嵌套 1.只要遇到了()就是函数的调用.如果没有就不是函数的调用 2.函数的执行顺序 遵循空间作用域,遇到调用才执行 def outer(): def inner(): print(" ...
- vue 开发系列(五) 调用原生API
概要 我们在开发手机端程序的时候了,我们经常需要使用到拍照,二维码的功能.数字天堂公司提供了大量的原生API支持. http://www.html5plus.org/doc/ 实现 1.在hbuild ...
- openstack之安全组管理
命令概览 (nova-api)[root@cc07 /]# nova help|grep secgroup add-secgroup Add a Security Group to a server. ...