private static bool IsAuthTokenValid(ActionFilterProperty filterProperty) { filterProperty.Get("AuthToken", out var token); var uri = $"http://localhost:5003/api/v1/auth/loggedIn/{token}"; var authResponse = new HttpClient().GetAsync(uri).Result; if (authResponse.StatusCode != HttpStatusCode.OK) { return(false); } var authContent = authResponse.Content.ReadAsStringAsync().Result; var userId = JsonConvert.DeserializeObject <string>(authContent); filterProperty.Set("UserId", userId); return(true); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { var filterProperty = new ActionFilterProperty(filterContext, true); var headers = filterContext.HttpContext.Request.Headers["AuthToken"]; var token = headers.FirstOrDefault(); if (token != null) { filterProperty.Set("AuthToken", token); if (IsAuthTokenValid(filterProperty)) { return; } } filterContext.Result = new UnauthorizedResult(); }