Gibt es eine praktische Einführung zum Einrichten von PassportJS mit PostgreSQL (d. H. Ersetzen von MongoDB durch PostgreSQL)?Installation von PassportJS mit PostgreSQL
Antwort
Nun, das ist für eine Weile offen, aber da ich mich mit dem gleichen Problem hier gefunden habe, geht es. Das einzige, was Sie tun müssen, ist die localStrategy mit Postgres definieren wie folgt:
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'pass'
},
(username, password, done) => {
log.debug("Login process:", username);
return db.one("SELECT user_id, user_name, user_email, user_role " +
"FROM users " +
"WHERE user_email=$1 AND user_pass=$2", [username, password])
.then((result)=> {
return done(null, result);
})
.catch((err) => {
log.error("/login: " + err);
return done(null, false, {message:'Wrong user name or password'});
});
}));
und dann definieren passport.serializeUser und passport.deserializeUser:
passport.serializeUser((user, done)=>{
log.debug("serialize ", user);
done(null, user.user_id);
});
passport.deserializeUser((id, done)=>{
log.debug("deserualize ", id);
db.one("SELECT user_id, user_name, user_email, user_role FROM users " +
"WHERE user_id = $1", [id])
.then((user)=>{
//log.debug("deserializeUser ", user);
done(null, user);
})
.catch((err)=>{
done(new Error(`User with the id ${id} does not exist`));
})
});
Dann definieren Sie Ihre Route:
app.post('/', passport.authenticate('local'), (req, resp)=>{
log.debug(req.user);
resp.send(req.user);
});
Und es sollte bereit sein zu gehen. Hoffe das hilft.
Ihre Antwort hat mir sehr geholfen, danke! –
OOC, was unterstützt diese Hash-Rock-Syntax '=> {'? Dies erzeugt einen erwarteten Token-Fehler für mich. – Trip
Das ist ES6 Syntax. Mehr Infos hier: http://es6-features.org/#ExpressionBodies –
Es gibt viele ORM verfügbar, was Sie für Postgres mit nodeJS verwenden können. Z.B. Sequelize, CaminateJS usw. Sie können jede von diesen gemäß Ihrer Anforderung und Bequemlichkeit verwenden.
Und natürlich können Sie passJS mit diesem verwenden. Einige gute Artikel, was ich gefunden sind
http://www.hamiltonchapman.com/blog/2014/3/25/user-accounts-using-sequelize-and-passport-in-nodejs
https://sarabinns.com/tag/passport-js-sequelize-postgresql/
http://anneblankert.blogspot.in/2015/06/node-authentication-migrate-from.html
Joe Antwort auf mich super hilfsbereit war! Falls sich jemand anderes in den folgenden Fehler läuft:
TypeError: Converting circular structure to JSON
fand ich, dass ändern:
(username, password, done) => {
die erf enthalten als solche geholfen:
(req, email, password, done)
Prost
- 1. Installation PostgreSQL 9.2 mit Chef postgresql
- 2. Konfigurationsempfehlungen für eine PostgreSQL-Installation
- 3. Fehler bei der Installation von Schienen api mit postgresql
- 4. PassportJS + RestAPI + SPA
- 5. Passportjs Individuelle Rückruf
- 6. Installation PL/Ruby-for PostgreSQL 8.3
- 7. Passportjs extrahieren Benutzer von isAuthenticated Funktion
- 8. Expresssitzung vs. PassportJS-Sitzung
- 9. Installation von psycopg2 (postgresql) in virtualenv auf Windows
- 10. Installation von PostgreSQL unter OSX für Rails Entwicklung
- 11. Postgresql 9.2 Installation auf Ubuntu 12.04
- 12. Postgresql Patroni Dokumentation zur Installation/Fehlersuche
- 13. PassportJS Vergleichen Passwort bestätigen Feld
- 14. Unbekannte Authentifizierung Facebook-Strategie - PassportJS
- 15. PassportJS req.user Senden aller Benutzerdaten
- 16. Installation von RVM: "Installation der Installation fehlgeschlagen mit Status: 1."
- 17. Einrichten von elasticSearch mit Postgresql
- 18. Wie wordpress mit postgresql installieren
- 19. PassportJS - Verwenden mehrerer Pässe in Express-Anwendung
- 20. Wie kann ich einen API-Endpunkt mit PassportJS schützen?
- 21. PostgreSQL Installation unter Linux Fehler - Edb existiert nicht
- 22. Passportjs PREVENT Auto-Login nach der Anmeldung
- 23. PassportJS: Sitzungen funktionieren nicht wie erwartet
- 24. Installation von Vim mit Homebrew
- 25. Installation von IIS8 mit Befehlszeilenparametern
- 26. Installation von Mechanize mit easy_install
- 27. Typeerror: kann Eigenschaft ‚username‘ von undefined in passportjs
- 28. PassportJS/Passwort vergessen: req.user nur undefined einmal
- 29. Installation der Kmeans PostgreSQL-Erweiterung auf Amazon RDS
- 30. Passportjs lokale Strategie fehlende Anmeldeinformationen Fehlermeldung
Check hier : https://github.com/ocastillo/nodejs-mysql-boilerplate – apneadiving
Nicht bewusst, ein bestimmtes Tutorial, aber Sie können verwenden sequelize.js Es wird Ihnen erlauben, sich frei zwischen mysql, postgreSQL usw. zu bewegen und Sie können JSON-Objekte in einer Tabelle speichern, indem Sie die Schlüssel als Spaltennamen verwenden. – opcode