Пример #1
0
        public static JwtSecurityToken DecodeToken(string protectedText, SigningConfigurations signingConfiguration, TokenConfigurations tokenConfigurations)
        {
            protectedText = protectedText.Replace("Bearer ", "");

            var validationParameters = new TokenValidationParameters
            {
                ValidIssuer              = tokenConfigurations.Issuer,
                ValidateLifetime         = true,
                ValidateAudience         = false,
                ValidateIssuer           = true,
                RequireSignedTokens      = true,
                RequireExpirationTime    = true,
                IssuerSigningKey         = signingConfiguration.Key,
                ValidateIssuerSigningKey = true
            };

            var handler = new JwtSecurityTokenHandler();

            SecurityToken securityToken;

            ClaimsPrincipal principal = handler.ValidateToken(protectedText, validationParameters, out securityToken);

            return((JwtSecurityToken)securityToken);
        }
Пример #2
0
        public static UserResponseToken GetToken(Dictionary <string, string> claims, SigningConfigurations signingConfigurations, TokenConfigurations tokenConfigurations)
        {
            ClaimsIdentity identity = new ClaimsIdentity();

            if (claims != null)
            {
                foreach (var item in claims)
                {
                    identity.AddClaim(new Claim(item.Key, item.Value));
                }
            }

            DateTime dataCriacao   = DateTime.Now;
            DateTime dataExpiracao = dataCriacao +
                                     TimeSpan.FromSeconds(tokenConfigurations.Seconds);

            var handler       = new JwtSecurityTokenHandler();
            var securityToken = handler.CreateToken(new SecurityTokenDescriptor
            {
                Issuer             = tokenConfigurations.Issuer,
                Audience           = tokenConfigurations.Audience,
                SigningCredentials = signingConfigurations.SigningCredentials,
                Subject            = identity,
                NotBefore          = dataCriacao,
                Expires            = dataExpiracao
            });
            var token = handler.WriteToken(securityToken);

            return(new UserResponseToken()
            {
                AccessToken = token,
                ExpiresIn = dataExpiracao.ToString("yyyy-MM-dd HH:mm:ss"),
                AuthStatus = "AUTHENTICATION_SUCCESS",
                TokenType = "Bearer"
            });
        }