Add whitelisting service + update the jwt valid audience

This commit is contained in:
2025-11-07 19:38:33 +07:00
parent 5578d272fa
commit 21110cd771
17 changed files with 2575 additions and 7 deletions

View File

@@ -24,7 +24,10 @@ public class JwtUtils : IJwtUtils
_secret = config.GetValue<string>("Jwt:Secret")
?? throw new InvalidOperationException("JWT secret is not configured.");
_issuer = config.GetValue<string>("Authentication:Schemes:Bearer:ValidIssuer");
_audience = config.GetValue<string>("Authentication:Schemes:Bearer:ValidAudiences");
// Get first audience from array (tokens are generated with a single audience)
var audiences = config.GetSection("Authentication:Schemes:Bearer:ValidAudiences")
.Get<string[]>() ?? Array.Empty<string>();
_audience = audiences.Length > 0 ? audiences[0] : null;
}
public string GenerateJwtToken(User user, string publicAddress)
@@ -37,7 +40,7 @@ public class JwtUtils : IJwtUtils
Subject = new ClaimsIdentity(new[] { new Claim("address", publicAddress) }),
Expires = DateTime.UtcNow.AddDays(15),
Issuer = _issuer, // Include issuer if configured
Audience = _audience, // Include audience if configured
Audience = _audience, // Include audience if configured (uses first from array)
SigningCredentials = new SigningCredentials(
new SymmetricSecurityKey(key),
SecurityAlgorithms.HmacSha256Signature)