using System.Security.Claims;
namespace TakeoutSaaS.Shared.Web.Security;
///
/// ClaimsPrincipal 便捷扩展
///
public static class ClaimsPrincipalExtensions
{
///
/// 获取当前用户 Id(不存在时返回 0)。
///
public static long GetUserId(this ClaimsPrincipal? principal)
{
if (principal == null)
{
return 0;
}
var identifier = principal.FindFirstValue(ClaimTypes.NameIdentifier)
?? principal.FindFirstValue("sub");
return long.TryParse(identifier, out var userId)
? userId
: 0;
}
}