2016-11-15 5 views
1

Mit Blick auf das Internet machen viele Leute die "Signup" -Methoden in Passport, mit lokalen Strategien. Hat dies jedoch einen Vorteil zwischen der manuellen Erstellung des Datensatzes in der Datenbank?Verwenden Sie pass.js für Benutzer registrieren oder manuell erstellen?

I bedeuten wollen, wenn wir eine Strategie des Reisepasses, dies zu tun verwenden, können wir tun:

passport.use('local-signup', new LocalStrategy({ 
    usernameField: 'email', 
    passwordField: 'password', 
    passReqToCallback: true 
}, (req, email, password, done) => { 
    User.findOne({ 
     email: email 
    }) 
    .then(user => { 
     if (user) { 
     return done(null, false); 
     } else { 
     User.create(req.body) 
     .then(userCreated => { 
      return done(null, userCreated); 
     }) 
     .catch(err => { 
      return done(err) 
     }); 
     } 
    }) 
    .catch(err => { 
     return done(err) 
    }); 
    } 
)); 

Aber ist dies wirklich notwendig? Oder können wir unseren Benutzer so erstellen? (Mit Bookshelf.js):

this.model.findOne({ 
    email: email 
}) 
.then(user => { 
    if (user) { 
    res.status(403).json({ 
     message: 'Email not available.' 
    }); 
    } else { 
    User.create(req.body) 
    .then(userCreated => { 
     res.status(201).json(userCreated); 
    }) 
    .catch(err => { 
     next(err); 
    }); 
    } 
}) 
.catch(err => { 
    next(err); 
}); 
} 
+0

In der Regel wird passpjs für die Authentifizierung verwendet, wenn Sie weiter gehen und einen Benutzer erstellen möchten, wenn er nicht registriert ist, liegt es an Ihrer Anwendung. – bpinhosilva

Antwort

0

Zunächst einmal wollen wir klar definieren, was Passport.js ist:

"Passport ist die Authentifizierung Middleware für Node" (http://passportjs.org/docs/overview)

Sie können den Benutzer so erstellen und dann den Rest des Login-Prozesses mit Ihrem on-Code behandeln.

Aber wenn Ihre Authentifizierungsregeln komplexer werden (und sie werden), wird Passport.js praktisch.

Sie müssen nicht Ihre Zeit damit verschwenden, den Code zu erstellen, um Zugriffsbeschränkungen, API-Exposures usw. zu behandeln. Passports.js erledigt all dies für Sie. Daher können Sie sich auf andere Implementierungsdetails Ihrer Anwendung konzentrieren.

Verwandte Themen