From 2e1b42de48bba16abbd0e73533b478e1c86b95f5 Mon Sep 17 00:00:00 2001 From: luolan Date: Fri, 4 Jul 2025 23:28:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=86=85=E5=AE=B9=20?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E4=BA=86404=E7=9A=84=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=EF=BC=8C=E5=B9=B6=E4=BD=BF=E5=85=B6=E8=BF=94=E5=9B=9E=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E6=9B=B4=E5=8F=AF=E7=88=B1=F0=9F=98=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGSS/Controllers/User/UserInfoController.cs | 3 ++ AGSS/Program.cs | 32 ++++++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/AGSS/Controllers/User/UserInfoController.cs b/AGSS/Controllers/User/UserInfoController.cs index b09afe6..8005490 100644 --- a/AGSS/Controllers/User/UserInfoController.cs +++ b/AGSS/Controllers/User/UserInfoController.cs @@ -1,6 +1,7 @@ using AGSS.Models; using AGSS.Models.Entities; using AGSS.Models.Template; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace AGSS.Controllers.User; @@ -17,8 +18,10 @@ public class UserInfoController : ControllerBase } [HttpGet] + [Authorize] public async Task My() { + UserModel user = new UserModel { AuthId = "123" diff --git a/AGSS/Program.cs b/AGSS/Program.cs index 415bc5b..0117340 100644 --- a/AGSS/Program.cs +++ b/AGSS/Program.cs @@ -1,4 +1,5 @@ using AGSS.Models; +using AGSS.Models.Template; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.EntityFrameworkCore; using Microsoft.IdentityModel.Tokens; @@ -21,9 +22,11 @@ var builder = WebApplication.CreateBuilder(args); var domain = builder.Configuration["Auth0:Domain"]; var audience =builder.Configuration["Auth0:Audience"]; +//数据库配置(PGSQL) builder.Services.AddDbContext(opt => opt.UseNpgsql(builder.Configuration.GetConnectionString("DBContext"))); +//鉴权配置 builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { @@ -37,6 +40,17 @@ builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) ValidIssuer = domain, ValidAudience = audience }; + options.Events = new JwtBearerEvents + { + OnChallenge = context => + { + context.HandleResponse(); + context.Response.StatusCode = 200; + context.Response.ContentType = "application/json"; + return context.Response.WriteAsJsonAsync(new ReturnTemplate(401,"你提供了一个错误的Token,所以我们无法验证你的身份,唔......",null)); + } + + }; }); builder.Services.AddAuthorization(); @@ -49,7 +63,7 @@ builder.Services.AddSwaggerGen(); var app = builder.Build(); -// Configure the HTTP request pipeline. +// 配置Swagger if (app.Environment.IsDevelopment()) { app.UseSwagger(); @@ -62,7 +76,23 @@ app.UseAuthentication(); app.UseAuthorization(); +//自定义中间件 把404变成200 +app.Use(async (context, next) => +{ + await next(); // 先执行后续中间件 + + // 如果响应是 404 且未修改过 + if (context.Response.StatusCode == 404 && !context.Response.HasStarted) + { + context.Response.StatusCode = 200; // 改为 200 + context.Response.ContentType = "application/json"; + + // 自定义响应内容 + await context.Response.WriteAsJsonAsync(new ReturnTemplate(404,"未能找到资源吖!",null)); + } +}); +//控制器路由 app.MapControllers(); app.Run();