public async Task InvokeAsync(HttpContext context, IConfiguration _configuration, IUserManager _userManager, ISessionManager _sessionManager) { IHeaderDictionary headers = context.Request.Headers; string authHeader = headers["Authorization"]; if (authHeader != null && authHeader != string.Empty) { string[] tokenBreak = authHeader.Split(" "); if (tokenBreak.Length == 2) { string AuthToken = tokenBreak[1]; string JwtSecret = _configuration.GetValue <string>("JwtSecret"); string UUID = JWT.ValidateJwtToken(AuthToken, JwtSecret); if (UUID != null) { User user = _userManager.GetUser(UUID); Session latestSession = _sessionManager.GetLatestSession(UUID); if (user != null && latestSession.JWT == AuthToken && latestSession.UUID == UUID && latestSession.Verified) { _userManager.CurrentUser = user; } } } } await _next(context); }