更新 401鉴权失败情况

This commit is contained in:
小肥羊 2026-04-20 14:30:59 +08:00
parent 36f719370b
commit 04881ef3b8
4 changed files with 29 additions and 14 deletions

View File

@ -51,24 +51,27 @@ namespace Learn.VideoAnalysis.Expand
}, },
OnAuthenticationFailed = context => OnAuthenticationFailed = context =>
{ {
context.Response.StatusCode = 403; // 可选:标记一下是否过期
if (context.Exception!=null)
context.Response.Headers["Token-Expired"] = context.Exception.Message;
return Task.CompletedTask; return Task.CompletedTask;
}, },
OnChallenge = context => OnChallenge = context =>
{ {
context.HandleResponse(); if (context.Response.Headers.ContainsKey("Token-Expired"))
if (context.Response.StatusCode == 403)
{ {
var data1 = new { Code = 403, Message = context.Error + context.AuthenticateFailure?.Message };
context.Response.WriteAsync(data1.ToJson());
return Task.CompletedTask;
} }
context.Response.Clear(); context.HandleResponse();
context.Response.ContentType = "application/json";
context.Response.StatusCode = 401; context.Response.StatusCode = 401;
var data = new { Code = 401, Message = context.Error + context.AuthenticateFailure?.Message }; context.Response.ContentType = "application/json";
context.Response.WriteAsync(data.ToJson()); context.Response.Headers["Access-Control-Allow-Origin"] = "*"; // ✅ 补这个
return Task.CompletedTask; var data = new
{
Code = 401,
Message = context.Error + context.AuthenticateFailure?.Message
};
return context.Response.WriteAsync(data.ToJson());
} }
}; };
}); });

View File

@ -53,9 +53,13 @@ namespace Learn.VideoAnalysis
builder.AddAppConfig(args); builder.AddAppConfig(args);
//初始化 插件 //初始化 插件
builder.Services.AddEndpointsApiExplorer(); builder.Services.AddEndpointsApiExplorer();
//swagger
builder.Services.AddSwaggerExpand("AI视频分析"); builder.Services.AddSwaggerExpand("AI视频分析");
//鉴权
builder.Services.AddPermissionAuthentication(); builder.Services.AddPermissionAuthentication();
//数据库
builder.Services.AddSqlSugarExpand(); builder.Services.AddSqlSugarExpand();
//reids
builder.Services.AddRedisExpand(); builder.Services.AddRedisExpand();
//工作流 //工作流
builder.Services.AddSimpleTexOcrClient(); builder.Services.AddSimpleTexOcrClient();
@ -109,6 +113,8 @@ namespace Learn.VideoAnalysis
var app = builder.Build(); var app = builder.Build();
AppCommon.Services = app.Services; AppCommon.Services = app.Services;
//允许跨域
app.UseCorsExpand();
app.UseMiddleware<BasicAuthMiddleware>("Swagger"); app.UseMiddleware<BasicAuthMiddleware>("Swagger");
// Configure the HTTP request pipeline. // Configure the HTTP request pipeline.
app.UseSwagger(); app.UseSwagger();
@ -133,7 +139,6 @@ namespace Learn.VideoAnalysis
app.MapControllers(); app.MapControllers();
//自定义 应用 //自定义 应用
app.UseCorsExpand();
app.UseSqlSugarExpand(); app.UseSqlSugarExpand();
app.UseCoravelExpand(); app.UseCoravelExpand();
app.UseServiceSystem(() => app.UseServiceSystem(() =>

View File

@ -17,6 +17,7 @@ import { useUserStoreHook } from "@/store/modules/user";
import router from "@/router"; import router from "@/router";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import { message } from "../message"; import { message } from "../message";
import { useNav } from "@/layout/hooks/useNav";
/**请求后端的地址 未配置则访问BaseURL */ /**请求后端的地址 未配置则访问BaseURL */
const apiServiceConfig = { const apiServiceConfig = {
@ -203,11 +204,15 @@ class PureHttp {
$error.isCancelRequest = Axios.isCancel($error); $error.isCancelRequest = Axios.isCancel($error);
// 关闭进度条动画 // 关闭进度条动画
NProgress.done(); NProgress.done();
debugger
if (error.response?.status === 403) { if (error.response?.status === 403) {
// 跳转到403页面 // 跳转到403页面
router.push({ router.push({
path: "/error/403" path: "/error/403"
}); });
}else if (error.response?.status === 401) {
// 跳转到403页面
useUserStoreHook().logOut();
}else if (error.response?.status !== 200) { }else if (error.response?.status !== 200) {
ElMessage.warning("请求失败" + $error.message + " "); ElMessage.warning("请求失败" + $error.message + " ");
console.log("请求失败" ,$error); console.log("请求失败" ,$error);

View File

@ -32,7 +32,9 @@ namespace VideoAnalysisCore.Common.Expand
// 获取配置文件中的允许跨域的地址 // 获取配置文件中的允许跨域的地址
app.UseCors(options => app.UseCors(options =>
{ {
options.WithOrigins("*") // 允许跨域请求的地址 options
.WithOrigins("*") // 允许跨域请求的地址
.AllowAnyOrigin()
.AllowAnyHeader() // 允许的请求标头 .AllowAnyHeader() // 允许的请求标头
.AllowAnyMethod(); // 允许跨域请求的类型 (GET,POST等) .AllowAnyMethod(); // 允许跨域请求的类型 (GET,POST等)
}); });