public static JwtValidationResult Failed(string errors)
        {
            var result = new JwtValidationResult {
                Succeeded = false
            };

            if (errors != null)
            {
                result._errors.Add(errors);
            }
            return(result);
        }
Beispiel #2
0
        public JwtValidationResult Validate(string token)
        {
            var jwtValidationResult = JwtValidationResult.Success;

            try
            {
                if (_jwtSecurityTokenHandler.CanReadToken(token))
                {
                    var validationParameters = new TokenValidationParameters
                    {
                        ValidateIssuerSigningKey = _options.ValidateIssuerSigningKey,
                        ValidIssuer      = _options.Issuer,
                        IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_options.SecretKey)),
                        ClockSkew        = TimeSpan.Zero,
                        ValidateAudience = _options.ValidateAudience,
                        ValidateLifetime = _options.ValidateLifetime,
                    };
                    var claims = _jwtSecurityTokenHandler.ValidateToken(token, validationParameters, out var validatedToken);
                    jwtValidationResult.JwtPayLoad = new JwtPayLoad()
                    {
                        ValidTo = validatedToken.ValidTo,
                        Id      = claims.Identity.Name
                    };
                }
                else
                {
                    jwtValidationResult = JwtValidationResult.Failed("Token Verification Failed");
                }
            }
            catch (ArgumentException e)
            {
                _logger.LogError(new EventId(203, GetType().Name), e, e.Message);
                jwtValidationResult = JwtValidationResult.Failed("Unable to decode token");
            }
            catch (Exception e)
            {
                _logger.LogError(new EventId(203, GetType().Name), e, e.Message);

                jwtValidationResult = JwtValidationResult.Failed(CreateErrorDescription(e).ToArray());
            }
            return(jwtValidationResult);
        }