sql >> Databasteknik >  >> RDS >> Mysql

Hur gör jag autentisering i node.js som jag kan använda från min webbplats?

Du behöver bara ändra .authenticate metod. Eftersom att ansluta till databasen är (eller borde vara) en asynkron operation, måste du lägga till promise objekt (se everyauth-dokumentation ).

Förutsatt att du har någon ORM med användardata som motsvarar user objekt med username och password attribut (i mitt exempel använder jag mongoose-motorn), så här kan det se ut:

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

Jag testade det inte, men enligt dokumentationen ska det fungera. Kom ihåg att fel är tänkta att hållas i array.

Förresten:om du bara använder lösenordsmetoden, så finns det ingen anledning att, du vet, använda en kanon mot en fluga. :) Att skriva din egen (inte nödvändigtvis perfekt, men fungerande) autentiseringsmekanism är väldigt enkel och om du inte vet hur du gör detta bör du lära dig det. Det kommer att gynnas i framtiden, eftersom autentisering och säkerhet i allmänhet är mycket viktigt i varje webbapp.




  1. Hur väljer man rader som har vissa relationer genom en pivottabell?

  2. Hur man skapar en tabell endast om den inte finns i SQLite

  3. FEL 1062 (23000):Duplicera posten '2147483647' för nyckeln 'PRIMÄR'

  4. Rekursiv fråga används för transitiv stängning