Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como fazer autenticação no node.js que posso usar no meu site?


Você só precisa modificar .authenticate método. Como a conexão com o banco de dados é (ou deveria ser) uma operação assíncrona, você precisa adicionar promise objeto (consulte a documentação de cada autenticação ).

Supondo que você tenha algum ORM com dados de usuário correspondentes a user objeto com username e password atributos (no meu exemplo vou usar o motor mangusto), é assim que pode ficar:
.authenticate( function (login, password) {
    var promise = this.Promise(); /* setup promise object */

    /* asynchrnously connect to DB and retrieve the data for authentication */
    db.find({ username:login }, function(err, user) {
        if (err)
            return promise.fulfill([err]);
        if ((!user) || (user.password != password))
            return promise.fulfill(['Incorrect username or password!']);
        promise.fulfill(user);
    });

    return promise; /* return promise object */
})

Não testei, mas de acordo com a documentação deve funcionar. Lembre-se de que os erros devem ser mantidos em array.

A propósito:se você estiver usando apenas o método de senha, não há necessidade de usar um canhão contra uma mosca. :) Escrever seu próprio mecanismo de autenticação (não necessariamente perfeito, mas funcionando) é muito simples e se você não sabe como fazer isso, deveria aprender. Ele se beneficiará no futuro, porque a autenticação e a segurança em geral são muito importantes em todos os aplicativos da web.