Olá pessoal!
Após implementar as funcionalidades desta aula e após autenticação /login, acessei a rota /livros, realizei um teste onde removi o cookie relativo à sessão (através das ferramentas do desenvolvedor / dev tools do navegador) (procedimento similar ao que o instrutor realizou - final do vídeo - na task 06 da aula 04), e tentei remover um livro (opção Remover da rota /livros).
Com isso, o livro desapareceu da página e não houve o redirecionamento para a rota/página de login, conforme configuração no arquivo livro-rotas.js (linha com o código resp.redirect(BaseControlador.rotas().login)):
// src/app/rotas/livro-rotas.js
// código omitido.
const BaseControlador = require('../controladores/base-controlador');
module.exports = (app) => {
const rotasLivro = LivroControlador.rotas();
app.use(rotasLivro.autenticadas, function(req, resp, next) {
if (req.isAuthenticated()) {
next();
} else {
resp.redirect(BaseControlador.rotas().login);
}
});
// demais rotas omitidas.
};
Posteriormente, descobri que o livro não era removido do banco de dados, mas apenas desaparecia da página do navegador, então fiz a seguinte modificação, para a remoção deixar de acontecer nesta página:
// arquivo remove-livro.js
// código anterior omitido
// DEPOIS da modificação
if (elementoClicado.dataset.type == 'remocao') {
let livroId = elementoClicado.dataset.ref;
fetch(`http://localhost:3000/livros/${livroId}`, { method: 'DELETE' })
.then(resposta => {
if (resposta.ok) { // MODIFICACAO (inclusão deste if)
let tr = elementoClicado.closest(`#livro_${livroId}`);
tr.remove();
}
})
.catch(erro => console.log(erro));
}
- Porém, porque não está acontecendo o redirecionamento para a página de login (linha resp.redirect(BaseControlador.rotas().login) no código mais acima )? Como efetivamente fazer este redirecionamento?
Obs: se eu remover o cookie e clicar em editar, o redirecionamento acontece normalmente para a página de login (/login), porém com a opção Remover esse redirecionamento não acontece.
Obs2: caso necessitem do projeto completo para verificação, favor fazer o download do projeto disponibilizado na task 01 da aula 05 (equivalente à este link), e favor também adicionar a este projeto o código disponibilizado na transcrição da task 01 desta aula 05.
Obs2 (update): caso necessitem do projeto completo para verificação, favor fazer o download do projeto disponibilizado na task 06 da aula 05 (equivale à este link).
Aguardo, desde já obrigado!
Atenciosamente.