Ejemplo n.º 1
0
        public TokenSalt GetSalt(string token)
        {
            var decoded         = _backpack.Decode(token);
            var versionPosition = Convert.ToInt32(decoded[2].ToString());
            var saltPosition    = Convert.ToInt32($"{decoded[versionPosition + 1]}{decoded[versionPosition + 2]}");
            var dataPosition    = Convert.ToInt32($"{decoded[versionPosition + 3]}{decoded[versionPosition + 4]}");
            var dataLength      = Convert.ToInt32($"{decoded[versionPosition + 5]}{decoded[versionPosition + 6]}");
            var salt            = decoded.Substring(saltPosition, _settings.SaltLength);
            var data            = decoded.Substring(dataPosition, dataLength);
            var timestamp       = decoded.Substring(dataPosition + _settings.DataMaxlength - _TIMESTAMP_LENGTH, _TIMESTAMP_LENGTH);

            return(new TokenSalt(salt, data, int.Parse(timestamp, NumberStyles.HexNumber), versionPosition, saltPosition, dataPosition,
                                 dataLength));
        }
Ejemplo n.º 2
0
        protected void EvaluateAutoTokens(EvaluateFor <TPart> evaluate)
        {
            evaluate
            .Token((token, defaultData) => {
                var tokenParts = _tokenEncoder.Decode(token);
                if (tokenParts == null)
                {
                    return(null);
                }

                var part = GetByTitle(tokenParts.Prefix);
                if (part == null)
                {
                    return(null);
                }

                return(part.Retrieve <string>(tokenParts.SubToken));
            });
        }
Ejemplo n.º 3
0
        public ClaimsPrincipal ValidateUser(string token)
        {
            var jwtPayload = tokenGenerator.Decode(token);

            if (jwtPayload.Expire < DateTime.UtcNow)
            {
                return(null);
            }

            if (queryProcessor.Query(new FindUserQuery(jwtPayload.UserId)).Result == null)
            {
                return(null);
            }

            return(new ClaimsPrincipal(new [] {
                new ClaimsIdentity(
                    new CustomIdentity(jwtPayload.UserId.ToString()),
                    jwtPayload.Claims.Select(x => new Claim(x.Key, x.Value))
                    )
            }));
        }