以下は私のpassportJSの登録戦略です。ほとんどのコードは、passport.authenticateメソッドが戦略を正常に認証した後に、私がres.sendというユーザーの引数に行くところまで、正常に実行されます。しかし、私が応答を返送されるたびに、私は「偽」メッセージを含むページを受け取る。ユーザーの詳細を私に送信するのではなく、代わりに「偽」に送信されます。Passport JSがユーザーを取得できません
app.use(passport.initialize());
app.use(passport.session());
passport.serializeUser(function(user, done) {
return done(null, user.id);
});
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user) {
done(err, user);
});
});
passport.use("registerUser",
new LocalStrategy({ passReqToCallback: true },
function(req, username, password, done) {
var newUser = new User({
name: username,
email: req.body.email,
password: password
});
newUser.save(function(err) {
if (err) {
return done(err);
}
return done(null, newUser);
});
}));
app.get("/", function(req, res) {
res.render("index", { title: "Register!", url: req.url });
});
app.post("/", function(req, res, next) {
passport.authenticate("registerUser", function(err, user) {
if (err) {
return done(err);
}
res.send(user);
})(req, res, next);
});
'newUser'は戦略コールバックで' done'を呼び出す前に期待していたようですか? – vesse
ええ、スキーマが同じです –