Beispiel #1
0
        public JwtToken CriarToken(UsuarioEntity usuario)
        {
            ClaimsIdentity identity = new ClaimsIdentity(
                new GenericIdentity(usuario.Login),
                new[] {
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString("N")),
                new Claim(JwtRegisteredClaimNames.UniqueName, usuario.UsuarioId.ToString()),
                new Claim(JwtRegisteredClaimNames.Sub, "Felipe Junges"),
                new Claim(ClaimTypes.Role, "Admin"),
                new Claim(ClaimTypes.Role, "Gerente")
            }
                );

            var dataCriacao   = DateTime.Now;
            var dataExpiracao = dataCriacao + TimeSpan.FromHours(_tokenConfigurations.Hours);

            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);

            var refreshToken = GenerateRefreshToken();

            return(JwtToken.Criar(token, refreshToken, dataCriacao, dataExpiracao));
        }