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 ...
随机推荐
- BUG(1):一个关于指针的bug
是时候记录一下这个让我栽了两次的bug了. 具体情况如下: #include <stdio.h>#include <stdlib.h> struct app_info_t { ...
- Linux产生序列数字
{起始数字..结束数字} // 注意 起始数字和结束数字都包括在内 中间没有空格
- [RF] 安装好Robot Framework之后怎样让启动的界面后面不带命令行窗口,且图片以机器人显示
安装好Robot Framework之后,通过 C:\Python27\Scripts\ride.py 启动时会带上一个命令行窗口: 怎样让启动的界面后面不带这个命令行窗口,且图片以机器人显示? 方法 ...
- gensim_主题提取
# https://blog.csdn.net/whzhcahzxh/article/details/17528261# gensim包中引用corpora,models, similarities, ...
- JS浏览器Session存取数据
vm.indexdata.indexId = id; vm.indexdata.indexName = name; var tempIndex = JSON.stringify(vm.indexdat ...
- linux 虚拟机设置
1.可以用网桥方式 2.可以用一个回环虚拟网卡即可.
- Python 中Lambda 表达式 实例解析
Lambda 表达式 lambda表达式是一种简洁格式的函数.该表达式不是正常的函数结构,而是属于表达式的类型.而且它可以调用其它函数. 1.基本格式: lambda 参数,参数...:函数功能代码 ...
- 金币(NOIP2015)
先给题目:金币 又是很水的题,很简单,直接上代码: #include<bits/stdc++.h> using namespace std; int main(){ int n; scan ...
- 【转载】Impala和Hive的区别
Impala和Hive的关系 Impala是基于Hive的大数据实时分析查询引擎,直接使用Hive的元数据库Metadata,意味着impala元数据都存储在Hive的metastore中.并且im ...
- SVN安装配置与使用
http://www.cnblogs.com/skyway/archive/2011/08/10/2133399.html http://www.cnblogs.com/lidabo/archive/ ...