Files
TenWholeYears.Server/src/RecNet.Application/Common/Security/ClaimsPrincipalExtensions.cs
2026-06-28 12:46:12 -05:00

30 lines
869 B
C#

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;
}
}