Mysql
 sql >> Database >  >> RDS >> Mysql

Come eseguire l'autenticazione in node.js che posso utilizzare dal mio sito Web?

Devi solo modificare .authenticate metodo. Poiché la connessione al database è (o dovrebbe essere) un'operazione asincrona, è necessario aggiungere promise oggetto (vedi everyauth documentazione ).

Supponendo che tu abbia un ORM con dati utente corrispondenti a user oggetto con username e password attributi (nel mio esempio userò il motore mongoose), ecco come potrebbe apparire:

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

Non l'ho testato, ma secondo la documentazione dovrebbe funzionare. Ricorda che gli errori dovrebbero essere mantenuti in array.

A proposito:se stai usando solo il metodo della password, non è necessario, sai, usare un cannone contro una mosca. :) Scrivere il proprio meccanismo di autenticazione (non necessariamente perfetto, ma funzionante) è davvero semplice e se non sai come farlo dovresti impararlo. Ne trarrà vantaggio in futuro, perché l'autenticazione e la sicurezza in generale sono molto importanti in ogni app Web.