MeiRiYiCheng_1_old/YBDevice.NApi/Handler/AddAuthTokenHeaderParameter.cs

47 lines
1.7 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Microsoft.OpenApi.Any;
using Microsoft.OpenApi.Models;
using Swashbuckle.AspNetCore.SwaggerGen;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace YBDevice.NApi
{
/// <summary>
/// swagger ui 增加header
/// </summary>
public class AddAuthTokenHeaderParameter : IOperationFilter
{
public void Apply(OpenApiOperation operation, OperationFilterContext context)
{
var filterDescriptors = context.ApiDescription.ActionDescriptor.FilterDescriptors;
//检查是否存在自定义的过滤器ApiAuthorizeFilter如果有说明需要token
var isAuthorized = filterDescriptors.Select(filterInfo => filterInfo.Filter).Any(filter => filter is ApiAuthorizeFilter);
if (isAuthorized)
{
if (operation.Parameters == null)
{
operation.Parameters = new List<OpenApiParameter>();
}
operation.Parameters.Add(new OpenApiParameter
{
Name = "token",
In = ParameterLocation.Header,
Description = "请输入token值",
Required = true,
Schema = new OpenApiSchema
{
Type = "string",
Default = new OpenApiString(""),
}
});
//operation.Responses.Add("401", new OpenApiResponse { Description = "Unauthorized" });
//operation.Responses.Add("403", new OpenApiResponse { Description = "Forbidden" });
}
}
}
}