首页 > 解决方案 > 我可以让 Passport.js 向新注册帐户添加新字段吗?

问题描述

我有这个代码:我想与用户有另一个字段,比如他们的电话号码,但我不知道如何添加它们

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("/");
            });
        }
    });

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

标签: node.jsexpressmongoosepassport.js

解决方案


您快到了!我建议在您的架构中添加该字段。

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

推荐阅读