using System.Security.Claims; using Govor.Application.Interfaces.Infrastructure.Extensions; using Microsoft.AspNetCore.Http; namespace Govor.Application.Infrastructure.Extensions; public class CurrentUserService : ICurrentUserService { private readonly IHttpContextAccessor _httpContextAccessor; public CurrentUserService(IHttpContextAccessor httpContextAccessor) { _httpContextAccessor = httpContextAccessor; } public Guid GetCurrentUserId() { var user = _httpContextAccessor.HttpContext?.User; var userIdClaim = user?.FindFirst("userId")?.Value; if (string.IsNullOrEmpty(userIdClaim) || !Guid.TryParse(userIdClaim, out var userId)) { throw new UnauthorizedAccessException("userID claim is missing or invalid"); } return userId; } }