huntapi/Services/JwtTokenService.cs
Finn Skov Henriksen d7479db902
Some checks failed
Build / Restore, build and publish (push) Failing after 2m7s
first commit
2026-08-31 12:29:23 +02:00

32 lines
1.1 KiB
C#

using Microsoft.IdentityModel.Tokens;
using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using System.Text;
namespace HuntingAppApi.Services;
public sealed class JwtTokenService(IConfiguration configuration)
{
public string CreateToken(Guid userId, string displayName, string? email)
{
var claims = new List<Claim>
{
new(JwtRegisteredClaimNames.Sub, userId.ToString()),
new("display_name", displayName)
};
if (!string.IsNullOrWhiteSpace(email)) claims.Add(new Claim(JwtRegisteredClaimNames.Email, email));
var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(configuration["Authentication:JwtSecret"]!));
var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
var token = new JwtSecurityToken(
issuer: configuration["Authentication:Issuer"],
audience: configuration["Authentication:Audience"],
claims: claims,
expires: DateTime.UtcNow.AddDays(14),
signingCredentials: credentials);
return new JwtSecurityTokenHandler().WriteToken(token);
}
}