private void ValidateToken(ITokenPayload payload)
        {
            var expiresAsDateTime = DateTimeOffset.FromUnixTimeMilliseconds(payload.Expires).Date;
            var isTokenValid      = payload.Audience == _settings.Audience &&
                                    payload.Issuer == _settings.Issuer &&
                                    DateTime.Compare(expiresAsDateTime, DateTime.Now) <= 0;

            if (!isTokenValid)
            {
                throw new UserNotAuthorizedException("JWT payload could not be validated");
            }
        }
 private string GenerateToken(ITokenPayload payload) =>
 new JwtEncoder(_algorithm, _serializer, _urlEncoder).Encode(payload, _settings.Secret);