Esempio n. 1
0
        /// <summary>
        /// GENERA UN TOKEN Y AL TOKEN SE PASAN RECLAMACIONES NECESARIAS
        /// </summary>
        /// <param name="usuario"></param>
        /// <returns></returns>
        private async Task <AutenticacionDTO> GenerarTokenAutorizacion(UsuariosEntidad usuario)
        {
            var tokenManejador = new JwtSecurityTokenHandler();

            var lstClaims = await ObtenerListaReclamacionesAsync(usuario);

            var key = Encoding.ASCII.GetBytes(_configuration["JWT:Secret"]);

            var tiempoVida = DateTime.UtcNow.Add(TimeSpan.Parse(_configuration["JWT:TokenTiempoVida"]));

            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Audience           = _configuration["JWT:Issuer"],
                Issuer             = _configuration["JWT:Issuer"],
                Subject            = new ClaimsIdentity(lstClaims),
                Expires            = tiempoVida,
                SigningCredentials = new SigningCredentials
                                     (
                    new SymmetricSecurityKey(key),
                    SecurityAlgorithms.HmacSha256Signature
                                     )
            };

            var token = tokenManejador.CreateToken(tokenDescriptor);

            var nuevoToken = new TokenEntidad()
            {
                JwtId         = token.Id,
                UserId        = usuario.Id,
                FechaCreacion = DateTime.UtcNow,
                Expiracion    = DateTime.UtcNow.AddMonths(6)
            };

            await _tokenRepositorio.CrearTokenAsync(nuevoToken);

            return(new AutenticacionDTO
            {
                Access_Token = tokenManejador.WriteToken(token),
                Refresh_Token = nuevoToken.Token,
                Expire = tiempoVida
            });
        }
        public async Task <bool> ActualizarTokenAsync(TokenEntidad token)
        {
            _context.Token.Update(token);

            return(await _context.SaveChangesAsync() > 0 ? true : false);
        }
        public async Task <TokenEntidad> CrearTokenAsync(TokenEntidad token)
        {
            await _context.Token.AddAsync(token);

            return(await _context.SaveChangesAsync() > 0 ? token : null);
        }