示例#1
0
        public async Task <IActionResult> Login(UsuariLoginDTO usuario)
        {
            UsuariInfoDTO _userInfo = await AutenticarUsuarioAsync(usuario.Email, usuario.Pass);

            if (_userInfo != null)
            {
                return(Ok(new { token = GenerarTokenJWT(_userInfo) }));
            }
            else
            {
                return(Unauthorized());
            }
        }
示例#2
0
        /// <summary>
        /// Genear el token con la informacion del usuario
        /// </summary>
        /// <param name="usuarioInfo">Información del usuario</param>
        /// <returns></returns>
        private string GenerarTokenJWT(UsuariInfoDTO usuarioInfo)
        {
            // CREAMOS EL HEADER //
            string secretKey             = _configuration["JWT:SecretKey"];
            var    _symmetricSecurityKey = new SymmetricSecurityKey(
                Encoding.UTF8.GetBytes(secretKey)
                );
            var _signingCredentials = new SigningCredentials(
                _symmetricSecurityKey, SecurityAlgorithms.HmacSha256
                );
            var _Header = new JwtHeader(_signingCredentials);

            // CREAMOS LOS CLAIMS //
            var _Claims = new[] {
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                new Claim(JwtRegisteredClaimNames.NameId, usuarioInfo.Id.ToString()),
                new Claim(JwtRegisteredClaimNames.Email, usuarioInfo.Email),
                new Claim(ClaimTypes.Role, usuarioInfo.Rol)
            };

            // CREAMOS EL PAYLOAD //
            var _Payload = new JwtPayload(
                issuer: _configuration["JWT:Issuer"],
                audience: _configuration["JWT:Audience"],
                claims: _Claims,
                notBefore: DateTime.Now,
                expires: DateTime.Now.AddHours(int.Parse(_configuration["JWT:Expire"]))
                );

            // GENERAMOS EL TOKEN //
            var _Token = new JwtSecurityToken(
                _Header,
                _Payload
                );

            return(new JwtSecurityTokenHandler().WriteToken(_Token));
        }