laatzen/LaaProductionWeb/LaaProductionWeb.Blazor/Components/Identity/Services/IdentityJwtService.cs
2025-03-17 16:03:24 +01:00

46 lines
1.3 KiB
C#

namespace LaaProductionWeb.Blazor.Components.Identity.Services
{
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
public class IdentityJwtService(ILogger<IdentityJwtService> logger)
{
private readonly ILogger<IdentityJwtService> logger = logger;
public IEnumerable<Claim> GetClaims(string token)
{
var claims = new List<Claim>();
try
{
if (!string.IsNullOrWhiteSpace(token))
{
var jwtSecurityTokenHandler = new JwtSecurityTokenHandler();
var securityToken = jwtSecurityTokenHandler.ReadToken(token);
var jwtSecurityToken = securityToken as JwtSecurityToken;
if (jwtSecurityToken.ValidTo <= DateTime.UtcNow)
{
claims.AddRange(jwtSecurityToken.Claims);
}
}
}
catch (Exception e)
{
this.logger.LogError(e, e.Message);
}
if (claims.Count == 0)
{
claims.Add(new Claim(ClaimTypes.Role, "JustUser"));
}
return claims;
}
}
}