using System.Security.Claims; namespace RecNet.Application.Common.Security; public static class ClaimsPrincipalExtensions { public static Guid GetProfileId(this ClaimsPrincipal user) { var value = user.FindFirst("sub")?.Value ?? user.FindFirst(ClaimTypes.NameIdentifier)?.Value; if (!Guid.TryParse(value, out var profileId)) throw new UnauthorizedAccessException( "Account id claim is missing or invalid."); return profileId; } public static Guid GetTokenVersion(this ClaimsPrincipal user) { var value = user.FindFirst("token_version")?.Value; if (!Guid.TryParse(value, out var tokenVersion)) throw new UnauthorizedAccessException( "Token version claim is missing or invalid."); return tokenVersion; } }