This commit is contained in:
陈淳
2022-09-15 18:40:24 +08:00
parent 489a0b6fb8
commit 844a7b455c
4 changed files with 35 additions and 9 deletions

View File

@@ -197,5 +197,12 @@ namespace Yi.Framework.ApiMicroservice.Controllers
var treeData = Common.Helper.TreeHelper.SetTree(vueRouterModels); var treeData = Common.Helper.TreeHelper.SetTree(vueRouterModels);
return Result.Success().SetData(treeData); return Result.Success().SetData(treeData);
} }
[Authorize]
[HttpGet]
public Result AuthorizeTest()
{
return Result.Success();
}
} }
} }

View File

@@ -1,3 +1,4 @@
global using System;
using Autofac.Extensions.DependencyInjection; using Autofac.Extensions.DependencyInjection;
using Yi.Framework.WebCore.BuilderExtend; using Yi.Framework.WebCore.BuilderExtend;
using Yi.Framework.Core; using Yi.Framework.Core;
@@ -11,7 +12,6 @@ using Yi.Framework.WebCore.AttributeExtend;
using Yi.Framework.WebCore.SignalRHub; using Yi.Framework.WebCore.SignalRHub;
var builder = WebApplication.CreateBuilder(args); var builder = WebApplication.CreateBuilder(args);
builder.Configuration.AddCommandLine(args); builder.Configuration.AddCommandLine(args);
builder.WebHost.UseUrls(builder.Configuration.GetValue<string>("StartUrl")); builder.WebHost.UseUrls(builder.Configuration.GetValue<string>("StartUrl"));

View File

@@ -38,7 +38,7 @@ namespace Yi.Framework.WebCore
long resId = 0; long resId = 0;
try try
{ {
claimlist = httpContext.AuthenticateAsync().Result.Principal.Claims; claimlist = httpContext.User.Claims;
resId = Convert.ToInt64(claimlist.FirstOrDefault(u => u.Type == JwtRegisteredClaimNames.Sid).Value); resId = Convert.ToInt64(claimlist.FirstOrDefault(u => u.Type == JwtRegisteredClaimNames.Sid).Value);
} }
catch catch

View File

@@ -5,9 +5,11 @@ using Microsoft.IdentityModel.Tokens;
using System; using System;
using System.IO; using System.IO;
using System.Text; using System.Text;
using System.Threading.Tasks;
using Yi.Framework.Common.Const; using Yi.Framework.Common.Const;
using Yi.Framework.Common.Helper; using Yi.Framework.Common.Helper;
using Yi.Framework.Common.IOCOptions; using Yi.Framework.Common.IOCOptions;
using Yi.Framework.Common.Models;
using Yi.Framework.Core; using Yi.Framework.Core;
namespace Yi.Framework.WebCore.MiddlewareExtend namespace Yi.Framework.WebCore.MiddlewareExtend
@@ -25,15 +27,32 @@ namespace Yi.Framework.WebCore.MiddlewareExtend
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options => .AddJwtBearer(options =>
{ {
options.Events = new JwtBearerEvents
{
OnAuthenticationFailed = (context) =>
{
return Task.CompletedTask;
},
OnMessageReceived = (context) =>
{
return Task.CompletedTask;
},
OnChallenge = (context) =>
{
return Task.CompletedTask;
},
};
options.TokenValidationParameters = new TokenValidationParameters options.TokenValidationParameters = new TokenValidationParameters
{ {
ValidateIssuer = true,//是否验证Issuer ClockSkew = TimeSpan.Zero,//过期缓冲时间
ValidateAudience = true,//是否验证Audience ValidateIssuer = true,//是否验证Issuer
ValidateLifetime = true,//是否验证失效时间 ValidateAudience = true,//是否验证Audience
ValidateIssuerSigningKey = true,//是否验证SecurityKey ValidateLifetime = true,//是否验证失效时间
ValidAudience = jwtOptions.Audience,//Audience ValidateIssuerSigningKey = true,//是否验证SecurityKey
ValidIssuer = jwtOptions.Issuer,//Issuer这两项和前面签发jwt的设置一致 ValidAudience = jwtOptions.Audience,//Audience
IssuerSigningKey = new RsaSecurityKey(RSAFileHelper.GetPublicKey()) ValidIssuer = jwtOptions.Issuer,//Issuer这两项和前面签发jwt的设置一致
IssuerSigningKey = new RsaSecurityKey(RSAFileHelper.GetPublicKey())
}; };
}); });
return services; return services;