sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo hacer la autenticación en node.js que puedo usar desde mi sitio web?

Solo necesitas modificar .authenticate método. Dado que conectarse a la base de datos es (o debería ser) una operación asíncrona, debe agregar promise objeto (ver documentación de everyauth ).

Suponiendo que tiene algún ORM con datos de usuario correspondientes a user objeto con username y password atributos (en mi ejemplo usaré el motor mongoose), así es como puede verse:

.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 */
})

No lo probé, pero según la documentación debería funcionar. Recuerde que se supone que los errores se mantienen en una matriz.

Por cierto:si está usando solo el método de contraseña, entonces no hay necesidad de usar un cañón contra una mosca. :) Escribir su propio mecanismo de autenticación (no necesariamente perfecto, pero funcional) es realmente simple y si no sabe cómo hacerlo, debe aprenderlo. Se beneficiará en el futuro, porque la autenticación y la seguridad en general son muy importantes en todas las aplicaciones web.