refactor(api): move auth middleware to project root

This commit is contained in:
spiral
2022-06-11 00:45:28 -04:00
parent 1c9a68cb53
commit ebcd623bd5

View File

@@ -0,0 +1,32 @@
using Dapper;
using PluralKit.Core;
namespace PluralKit.API;
public class AuthorizationTokenHandlerMiddleware
{
private readonly RequestDelegate _next;
public AuthorizationTokenHandlerMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task Invoke(HttpContext ctx, IDatabase db)
{
ctx.Request.Headers.TryGetValue("authorization", out var authHeaders);
if (authHeaders.Count > 0)
{
var systemId = await db.Execute(conn => conn.QuerySingleOrDefaultAsync<SystemId?>(
"select id from systems where token = @token",
new { token = authHeaders[0] }
));
if (systemId != null)
ctx.Items.Add("SystemId", systemId);
}
await _next.Invoke(ctx);
}
}