35 lines
1.2 KiB
C#
35 lines
1.2 KiB
C#
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<JwtSetting>(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
|
|
};
|
|
});
|
|
}
|
|
}
|
|
}
|