是否有使用PostgreSQL設置PassportJS的演練教程(即用PostgreSQL替換MongoDB)?使用PostgreSQL安裝PassportJS
回答
嗯,這是開放一段時間,但因爲我發現自己在這裏有同樣的問題,它走了。你所要做的唯一事情是與Postgres的定義localStrategy像這樣:
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'});
});
}));
,然後定義passport.serializeUser和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`));
})
});
然後定義您的路線:
app.post('/', passport.authenticate('local'), (req, resp)=>{
log.debug(req.user);
resp.send(req.user);
});
它應該準備好去。希望這可以幫助。
你的答案幫了我很多,謝謝! –
OOC,什麼支持hash rock語法'=> {'?這會爲我創建一個預期的令牌錯誤。 – Trip
這就是ES6語法。更多信息在這裏:http://es6-features.org/#ExpressionBodies –
有很多ORM可用於Postgres和nodeJS。例如。 Sequelize,CaminateJS等。根據您的要求和便利,您可以使用其中任何一種。
當然,您可以使用passportJS。一些好文章,我發現了什麼是
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
喬的回答是超對我很有幫助!萬一別人運行到以下錯誤:
TypeError: Converting circular structure to JSON
我發現修改:
(username, password, done) => {
包括這樣幫助REQ:
- 1. 用WiX安裝程序安裝PostGreSql
- 2. Postgresql安裝
- 3. 安裝PostgreSQL
- 4. 如何使用postgresql安裝wordpress
- 5. 使用Java查找Postgresql安裝位置
- 6. 使用PostgreSQL連接器安裝SQLpp11
- 7. 在Mac OSX上使用apache安裝postgresql
- 8. 在PowerBI中安裝ngpsql以使用PostgreSQL
- 9. postgresql安裝失敗
- 10. PostgreSQL的PLSH安裝
- 11. PostgreSQL安裝問題
- 12. 爲Django安裝postgresql
- 13. 請安裝PostgreSQL的適配器:`安裝了activerecord-PostgreSQL相關adapter`
- 14. Gentoo使用postgresql安裝php with postgresql和pdo
- 15. Postgresql不與postgresql cookbook一起安裝
- 16. 在Mac Lion上安裝Postgresql
- 17. Postgresql未能安裝正確
- 18. 安裝(PostgreSQL)9.6.2 Sabayon linux?
- 19. 的Ubuntu 15.04安裝PostgreSQL
- 20. 安裝Heroku的PostgreSQL gem pq
- 21. Postgresql的Linux獨立「安裝」
- 22. Rails - 安裝黃瓜w PostgreSQL
- 23. PostgreSQL安裝是在Cygwin
- 24. Postgresql與Postgis Geodjango安裝
- 25. 在PostgreSQL中安裝pgAgent
- 26. 的PostgreSQL安裝錯誤
- 27. 在PostgreSQL中安裝PL/Perl
- 28. PostGIS的擴展安裝PostgreSQL
- 29. 無法安裝DotConnect for PostgreSQL
- 30. Prunning PostgreSQL Windows安裝包
檢查這裏
乾杯:https://github.com/ocastillo/nodejs-mysql-boilerplate – apneadiving
不知道具體的教程,但你可以使用sequelize.js它將允許您在mysql,postgreSQL等之間自由移動,並允許您使用鍵作爲列名將JSON對象轉儲到表中。 – opcode