using IRaCIS.WX.CoreApi.Auth; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.IdentityModel.Tokens; using System; using System.Text; namespace IRaCIS.Core.API { public class AuthConfigure { public static void ConfigureAuth(IServiceCollection services, IConfiguration configuration) { services.Configure(configuration.GetSection("JwtSetting")); var jwtSetting = new JwtSetting(); configuration.Bind("JwtSetting", jwtSetting); services .AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.TokenValidationParameters = new TokenValidationParameters { ValidIssuer = jwtSetting.Issuer, ValidAudience = jwtSetting.Audience, IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtSetting.SecurityKey)), // 默认 300s ClockSkew = TimeSpan.Zero }; }); } } }