using Microsoft.IdentityModel.Tokens; using System.IdentityModel.Tokens.Jwt; using System.Security.Claims; using System.Text; namespace DoliMiddlewareApi.Services.Auth; public sealed class JwtTokenProvider(IConfiguration config) { public string GenerateJwt(string sessionId, string username) { var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(config["Jwt:Secret"]!)); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var claims = new[] { new Claim("sessionId", sessionId), new Claim(ClaimTypes.Name, username) }; var token = new JwtSecurityToken( issuer: config["Jwt:Issuer"] ?? "DoliMiddleware", audience: config["Jwt:Audience"] ?? "DoliClients", claims: claims, expires: DateTime.Now.AddHours(8), signingCredentials: creds ); return new JwtSecurityTokenHandler().WriteToken(token); } }