Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Como funciona a autenticação?

Não entendi em qual momento é feita a autenticação em si. Primeiro é feito o cadastro do diretor (vou usar diretor no exemplo), depois é atribuída uma senha pelo método diretor.cadastrarSenha("123"). Mas na hora em que é feita a autenticação, como o JS sabe que é pra fazer uma comparação e retornar true ou false, sem utilizar condicionais?

Tipo, como esse código simplesmente não sobrescreve a senha que foi previamente cadastrada?

const diretorEstaLogado = SistemaAutenticacao.login(diretor, "321")
autenticar(senha) {
        return senha == this._senha
    }

Alguém poderia me explicar melhor a lógica por trás desse processo?

2 respostas
solução!

Fala Juliana, tudo bem?

Nesse caso, como ele utiliza um operador condicional, pode ser considerado uma condicional, não é necessário sempre utilizar o if ou else para fazer alguma verificação. No código que você deu como exemplo, é retornado o resultado da condicional (que verifica se a senha recebida como argumento é igual a this._senha), retornando true ou false. Por exemplo:

class SistemaAutenticacao() {
    constructor() {
        this._senha = "123"
    }

    autenticar(senha) { 
        return senha == this._senha 
    } //Aqui criamos um método chamado autenticar que recebe uma senha como argumento e retorna o resultado da condição que passamos utilizando apenas o operador condicional de igualdade
} //Aqui criamos uma classe chamada SistemaAutenticacao que possui uma senha como valor 123 e o nosso método de autenticação.

const Autenticacao = new SistemaAutenticacao() //Aqui instanciamos a nossa classe SistemaAutenticacao

Autenticacao.autenticar("123") //Aqui retornará true, pois 123 (valor que passamos) é igual á senha da nossa classe

Autenticacao.autenticar("111")//Aqui retornará false, pois 111 é diferente da senha da nossa classe.

Então como vimos, podemos fazer uma condicional simples sem precisar de um if ou `else apenas passando qualquer operador condicional.

Espero ter ajudado, bons estudos e se a dúvida permanecer pode contar com a gente :D

Bom dia, Mateus! Não me atentei aos dois sinais de igual ==, por um momento achei que era um só =, como se fosse atribuição. E também não conhecia essa forma de escrever uma condicional. Agora entendi. Muito obrigada!