protected override async Task <AuthenticateResult> HandleAuthenticateAsync() { string token = GetAuthenticationToken(); if (token != null) { int?userId = await _userSessionRepository.GetUserIdFromToken(token); if (userId.HasValue) { AuthenticationTicket ticket = GetTicketForUserId(userId.Value); return(AuthenticateResult.Success(ticket)); } } return(AuthenticateResult.Fail(JErrorMessages.InvalidToken)); }