httpwebrequest 在header中添加token_Swagger在header中添加token

本文档介绍如何在使用Swagger时,在HTTPWebReques的Header中添加Token进行安全验证。首先概述了前后端分离项目中Swagger作为API文档的重要性,接着提出了在测试文档中增加Token验证的需求。然后详细阐述了实现这一功能的四个步骤:定义Swagger请求头、在ConfigureServices方法中添加OperationFilter、定义ActionFilterAttribute以及在需要的地方使用[BasicAuth]装饰器。最终展示了实现效果,用户可以在Swagger界面上输入Bearer Token进行验证。
摘要由CSDN通过智能技术生成

概述

平常做项目使用mvc+webapi,采取前后端分离的方式,后台提供API接口给前端开发人员。这个过程中遇到一个问题后台开发人员怎么提供接口说明文档给前端开发人员。为了解决这个问题,项目中引用swagger(我比较喜欢戏称为“丝袜哥”)。

列出所有API控制器和控制器描述

e6f73f3bd8d6bb9d013173afb8542a40.png

问题

那么既然是api,肯定涉及到安全验证问题,那么怎么在测试文档增加添加Token安全验证呢;

代码实现

下面我们来看看

1、定义swagger请求头

using Microsoft.AspNetCore.Authorization;using Swashbuckle.AspNetCore.Swagger;using Swashbuckle.AspNetCore.SwaggerGen;using System.Collections.Generic;using System.Linq;using System.Reflection;namespace CompanyName.ProjectName.HttpApi.Host.Code{
        ///     /// swagger请求头    ///     public class HttpHeaderOperationFilter : IOperationFilter    {
            ///         ///        ///         ///         ///         public void Apply(Operation operation, OperationFilterContext context)        {
                #region 新方法            if (operation.Parameters == null)            {
                    operation.Parameters = new List();            }            if (context.ApiDescription.TryGetMethodInfo(out MethodInfo methodInfo))            {
                    if (methodInfo.CustomAttributes.All(t => t.AttributeType != typeof(AllowAnonymousAttribute))                        && !(methodInfo.ReflectedType.CustomAttributes.Any(t => t.AttributeType == typeof(AuthorizeAttribute))))                {
                        operation.Parameters.Add(new NonBodyParameter                    {
                            Name = "Authorization",                        In = "header",                        Type = "string",                        Required = true,                        Description = "请输入Token,格式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值