我可以让 Passport.js 添加新字段到新注册帐户吗?

can I make Passport.js add new field to new register accounts?

我有这个代码: 我想与用户一起使用其他字段,例如他们的 phone 号码,但我不知道如何添加它们

const userSchema = new mongoose.Schema({
    username: String,
    password: String
    //// here i want to add another property
});

userSchema.plugin(passportLocalMongoose);

const User = mongoose.model('user', userSchema);

passport.use(User.createStrategy());

passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());

我的注册是这样的:

User.register({ username: req.body.username }, req.body.password, function (err) {
        if (err) {
            console.log(err);
            res.redirect("/register");
        } else {
            passport.authenticate("local")(req, res, function () {
                res.redirect("/");
            });
        }
    });

我不知道在哪里添加新字段

你就快完成了!我建议在您的架构中添加该字段。

const userSchema = new mongoose.Schema({
    username: String,
    password: String
    phoneNumber: String,
});

然后在注册调用中将数据传递给 User.register 方法。

const user = {
  username: req.body.username,
  phoneNumber: req.body.phoneNumber,
}

User.register(new User(user), req.body.password, function (err) {
// your callback logic