Skip to content

Commit 38689e8

Browse files
committed
Small Fix
1 parent 80c2e26 commit 38689e8

File tree

3 files changed

+11
-41
lines changed

3 files changed

+11
-41
lines changed

TestJwt/Jwt/JwtAuthBuilder.cs

+2-5
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,10 @@
66

77
using System.Text;
88

9-
public static class JwtAuthBuilderExtesnions
9+
public static class JwtAuthBuilderExtensions
1010
{
11-
public static AuthenticationBuilder AddJwtAuthentication(this IServiceCollection services, IConfiguration configuration)
11+
public static AuthenticationBuilder AddJwtAuthentication(this IServiceCollection services, JwtConfiguration jwtConfiguration)
1212
{
13-
var jwtConfiguration = new JwtConfigurationFactory(configuration).Create();
14-
1513
services.AddAuthorization();
1614

1715
return services.AddAuthentication(x =>
@@ -31,7 +29,6 @@ public static AuthenticationBuilder AddJwtAuthentication(this IServiceCollection
3129
ValidIssuer = jwtConfiguration.Issuer,
3230
ValidAudience = jwtConfiguration.Audience,
3331
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtConfiguration.Secret)),
34-
3532
RequireExpirationTime = true,
3633
};
3734
});

TestJwt/Jwt/JwtConfiguration.cs

+5-34
Original file line numberDiff line numberDiff line change
@@ -2,39 +2,10 @@
22

33
namespace JwtAuthApp.JWT;
44

5-
public class JwtConfiguration
5+
public record JwtConfiguration
66
{
7-
public string Issuer { get; } = string.Empty;
8-
public string Secret { get; } = string.Empty;
9-
public string Audience { get; } = string.Empty;
10-
public int ExpireDays { get; } = 0;
11-
12-
public JwtConfiguration(IConfiguration configuration)
13-
{
14-
var section = configuration.GetSection("JWT");
15-
16-
Issuer = section[nameof(Issuer)] ?? string.Empty;
17-
Secret = section[nameof(Secret)] ?? string.Empty;
18-
Audience = section[nameof(Audience)] ?? string.Empty;
19-
20-
if (!int.TryParse(section[nameof(ExpireDays)], NumberStyles.Integer, CultureInfo.InvariantCulture, out int expireDays))
21-
{
22-
expireDays = 7;
23-
}
24-
25-
ExpireDays = expireDays;
26-
}
7+
public string Secret { get; set; } = string.Empty;
8+
public string Issuer { get; set; } = string.Empty;
9+
public string Audience { get; set; } = string.Empty;
10+
public int ExpireDays { get; set; } = 7;
2711
}
28-
29-
public class JwtConfigurationFactory(IConfiguration configuration)
30-
{
31-
private readonly IConfiguration _configuration = configuration;
32-
33-
public JwtConfiguration Create()
34-
{
35-
var jwtConfiguration = new JwtConfiguration(_configuration);
36-
37-
return jwtConfiguration;
38-
39-
}
40-
}

TestJwt/Program.cs

+4-2
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,13 @@
1010
builder.Services.AddSwaggerGen();
1111
builder.Services.AddHttpContextAccessor();
1212

13-
builder.Services.AddTransient<JwtConfiguration>();
13+
var jwtConfig = builder.Configuration.GetSection("Jwt").Get<JwtConfiguration>();
14+
builder.Services.AddSingleton(jwtConfig);
15+
1416
builder.Services.AddScoped<IdentityService>();
1517

1618

17-
builder.Services.AddJwtAuthentication(builder.Configuration);
19+
builder.Services.AddJwtAuthentication(jwtConfig);
1820
builder.Services.AddSwaggerGen(SwaggerConfiguration.Configure);
1921

2022
var app = builder.Build();

0 commit comments

Comments
 (0)