Até onde me lembro dessa parte do curso, o autenticar()
não deve retornar o valor da senha, pois isso deixaria a senha exposta. Porém, ele deve apenas validar a senha retornando o valor como true
ou false
:
// Arquivo Funcionario.js
export class Funcionario{
//constructor
autenticar(senha){
return senha == this._senha;
}
// cadastrarSenha(senha)
}
Perceba que o método autenticar(senha)
, não retorna o valor de this._senha
. Ele apenas compara senha
com this._senha
e retorna um valor booleano true
ou false
.
Já a classe SistemaAutenticacao
, tem um método estático que permite receber o objeto, no caso um diretor
, por exemplo, e a senha digitada por este usuário e, com base nestes valores passados por argumento, consegue pegar o método autenticar()
que está lá na classe Funcionario
passar para ele a senha e receber se a senha confere ou não. Contudo, o valor da senha não é retornado, apenas se é true
ou false
.
// Arquivo SistemaAutenticacao.js
class SistemaAutenticacao{
static login(autenticavel, senha){
return autenticavel.autenticar(senha);
}
}
Em index.js
, temos
import { SistemaAutenticacao } from "./SistemaAutenticacao.js";
const diretor = new Diretor("Rodrigo", 10000, 12345678900);
diretor.cadastrarSenha("123456");
// perceba que o objeto diretor é passado por login, junto com a senha:
const diretorEstaLogado = SistemaAutenticacao.login(diretor, "123456");
console.log(diretorEstaLogado);