namespace SimpleAdmin.Api.Auth; /// /// 仓配开放 API:Authorization 直接传 JWT(不要求 Bearer 前缀)。 /// 在进入 JwtBearer 前补上 Bearer,以便复用现有鉴权。 /// public sealed class WarehouseOpenApiAuthHeaderMiddleware(RequestDelegate next) { public Task InvokeAsync(HttpContext context) { if (context.Request.Path.StartsWithSegments("/openapi/warehouse")) { NormalizeAuthorizationHeader(context.Request.Headers); } return next(context); } private static void NormalizeAuthorizationHeader(IHeaderDictionary headers) { var auth = headers.Authorization.ToString(); if (string.IsNullOrWhiteSpace(auth)) { return; } auth = auth.Trim(); if (auth.StartsWith("Bearer ", StringComparison.OrdinalIgnoreCase)) { return; } // 无 scheme:Authorization: {token} headers.Authorization = "Bearer " + auth; } }