Withh働いていません。PassportJS局所戦略は、私はPassportJSでユーザー認証のハンドルを取得しようとしている、と私はそれが私のデータベースのセットアップを動作させることはできませんMongoDBの
私はMongoDB を使用していません。マングースを使用していないため、LocalStrategyモジュールを動作させることができません。
私のデータベースのクエリはあまりにも読みにくいとはかぎられません。
局所戦略:
passport.use(new LocalStrategy(
function(username, password, done) {
//Fire up database
mongo.connect("mongodb://localhost:27017/formulas", function(e, db) {
if (e) {return next(e);}
var col = db.collection("users");
//Do a database query to find a record by username
col.findOne({"username": username}, function(err, user){
if (err) { return done(err);}
if(!user) {
return done(null, false, { message: "Please check your log in credentials." });
}
//if it exists call done() object with user information
bcrypt.compare(password, user.password, function(err, res){
if (err) throw err;
if (res == true) {
return done(null, {username: username, password: password});
} else {
return done(null, false, { message: "Invalid password."});
}
});
});
});
}));
私はこのようなpassport.authenticate()
を呼び出す:
router.post('/login',
passport.authenticate('local', {successRedirect:'/', failureRedirect:'/about',failureFlash: false}),
function(req, res){
console.log(req.body);
console.log(req.user);
console.log("The user was logged");
});
SerializeUser
とdeserializeUser
次のようになります。
passport.serializeUser(function(user, done) {
done(null, user.username);
});
passport.deserializeUser(function(id, done) {
mongo.connect("mongodb://localhost:27017/formulas", function(e, db){
if (e) {return next(e);}
var col = db.collection("users");
col.findOne({"username": id}, function(err, user){
done(err, {"username": id});
});
});
});
私はを呼び出すとき私はに直接連れて行って、何もコンソールに記録されていないので、何がうまくいかないのか分かりません。修正するか、トラブルシューティングを行う方法について何の
アドバイスは大歓迎です。