Meme Generation API
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Kynareth/src/Attributes/RequireTokenAttribute.cs

26 lines
795 B

using System.Net;
using Exsersewo.Common.Utilities;
using Kynareth.Helpers;
using Microsoft.AspNetCore.Mvc.Filters;
namespace Kynareth.Attributes;
[AttributeUsage(AttributeTargets.Class)]
public class RequireTokenAttribute : ActionFilterAttribute
{
public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
if (await RequestHelper.IsRequestAuthenticatedAsync(context.HttpContext.Request))
{
await next();
return;
}
context.HttpContext.Response.ContentType = "application/json";
context.HttpContext.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
var invalidRequest = EventResult.FromFailure("Unauthorized request");
await context.HttpContext.Response.WriteAsync(invalidRequest.ToJson());
return;
}
}