28 lines
789 B
C#
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;
|
|
}
|
|
}
|
|
} |