Files
schengen-visa/SchengenVisaApi/Infrastructure/Common/UserIdProvider.cs
2024-08-26 11:33:31 +03:00

18 lines
643 B
C#

using System.Security.Claims;
using ApplicationLayer.InfrastructureServicesInterfaces;
using Microsoft.AspNetCore.Http;
namespace Infrastructure.Common;
public class UserIdProvider(IHttpContextAccessor contextAccessor) : IUserIdProvider
{
Guid IUserIdProvider.GetUserId()
{
var claim = contextAccessor.HttpContext!.User.Claims.SingleOrDefault(claim => claim.Type == ClaimTypes.NameIdentifier);
if (claim is null)
{
throw new InvalidOperationException("UserIdProvider call for request with no authorization");
}
return Guid.Parse(claim.Value);
}
}