public EmailController(webmailContext context, IJwtTokenService jwtTokenService, IHandlerEncrypt encrypt) { _context = context; // QUITAR DE AQUI _handler = new clsHandlerEmailExchange(); _jwtTokenService = jwtTokenService; _encrypt = encrypt; }
public MaquinesController(webmailContext context, IJwtTokenService jwtTokenService, IHandlerEncrypt encrypt, IMapper mapper) { _context = context; // QUITAR DE AQUI _handler = new clsHandlerEmailExchange(); _jwtTokenService = jwtTokenService; _encrypt = encrypt; _mapper = mapper; }
public LoginController(webmailContext context, IJwtTokenService jwtTokenService, IHandlerEncrypt encrypt, IConfiguration configuration) { _context = context; // QUITAR DE AQUI _handler = new clsHandlerEmailExchange(); _jwtTokenService = jwtTokenService; _encrypt = encrypt; _configuration = configuration; }
/// <summary> /// Autentificar el usuario con la base de datos y devolver el token /// </summary> /// <param name="email">Dirección de correo electronico</param> /// <param name="password">Contranseya de la direccion de correo electronico</param> private async Task <UsuariInfoDTO> AutenticarUsuarioAsync(string email, string password) { // Chequear si el email y pass es correcto en el servidor de correos IHandlerEmail _handler = new clsHandlerEmailExchange(email, password, email); if (!_handler.conectado()) { return(null); // Email i pass incorrecto } // Encriptar la contrasenya SHA256 mySHA256 = SHA256Managed.Create(); var guid = Guid.NewGuid(); var passHash = _encrypt.Encriptar(password, guid.ToString()); // Crear o modificar el usuario autentificado var usuari = _context.Usuaris.FirstOrDefault(x => x.Email == email); if (usuari == null) { usuari = new Usuari(); usuari.Email = email; } usuari.Pass = passHash; usuari.Caducitat = DateTime.Now.AddHours(int.Parse(_configuration["JWT:Expire"])); if (usuari.UsuariId > 0) { _context.Entry(usuari).State = EntityState.Modified; } else { _context.Usuaris.Add(usuari); } await _context.SaveChangesAsync(); // Devolver un objeto tipo UsuarioInfo con toda la información necesaria para el token return(new UsuariInfoDTO() { Id = guid, // Clave secreta para desencriptar la contrasenya Email = email, Rol = "Usuario" }); }