Files
messengerapi.Broker/code/MessengerBroker/Handlers/AuthHandler.cs
2025-06-29 14:43:35 +02:00

28 lines
789 B
C#

namespace MessengerBroker.Handlers
{
public class AuthHandler
{
private readonly Settings settings;
public AuthHandler(Settings settings)
{
this.settings = settings;
}
public Guid? Auth(HttpContext context)
{
var authHeader = context.Request.Headers["Authorization"].ToString();
if (!string.IsNullOrEmpty(authHeader) && authHeader.StartsWith("Bearer "))
{
var token = authHeader.Substring("Bearer ".Length).Trim();
if (Guid.TryParse(token, out Guid brokerId) && this.settings.Slaves.Any(x => x.BrokerId == brokerId))
{
return brokerId;
}
}
return null;
}
}
}