using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.IdentityModel.Tokens;
using System.Text;
public static class AuthenticationExtensions
{
public static IServiceCollection AddCustomJwtAuthentication(this IServiceCollection services, IConfiguration configuration)
{
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = false,
ValidateAudience = false,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = configuration.GetValue<string>("Jwt:Issuer"),
ValidAudience = configuration.GetValue<string>("Jwt:Audience"),
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(configuration.GetValue<string>("Jwt:Key")))
};
});
return services;
}
}
"Jwt": {
"Key": "abcdefgh12345678abcdefgh12345678", //加密密钥
"Issuer": "your_issuer_here", //JWT的服务端
"Audience": "your_audience_here", //JWT的受众
"Expires": 3600 //失效时间s
},