1
resposta

Personalização do 'passport.authenticate'

Pessoal Boa tarde! Sou iniciante e estou com muita dificuldade de entender o que ele fez no vídeo "Tratando erro do login" (Modulo 3) - Codigo esta abaixo ... Alguém consegue me explicar ou me indicar algum material pra que eu possa entender por favor?

Porque inserido *(req, res, next) no inicio e no fim?

Qual a sequencia de processamento disto...

module.exports = {
       local:*(req, res, next)* => {
            passport.authenticate(
                'local',
                {session: false},
                (erro, usuario, info) => { }
            ) *(req, res, next);*
        }
}

A principio havia entendido, antes da "personalizaçao", que o passport.authenticate (lá na rota) chama o LocalStrategy e este retorna o usuário, em seguida (lá na rota) é chamado controlador.login (recebendo este usuario) .... Esta certo este raciocinio?

1 resposta

Oi Célia, tudo bem? Como não vi esse curso não sei se o raciocínio está correto 100%, precisaria ver o código para entender melhor o que você quis dizer, mas nesse trecho de código, o passport.authenticate nada mais é que um middleware, ele vai autenticar o usuário durante o acesso a uma rota, mas ele precisa deixar o processo do request continuar nos casos em que a autenticação foi um sucesso. Por devolver um middeware no final, esse middleware precisa ser executado e todo middleware no express, recebe os objetos de requisição, resposta e a próxima função a ser executada no fluxo como parâmetro.

Caso contrário, o request vai parar sempre no passport e não haverá continuidade do processamento.

Ficou mais claro? Caso não, me dá um retorno aqui que a gente tenta esclarecer isso de outra forma.