Roh*_*ant 4 node.js passport.js
我正在进行节点+ passport.js身份验证.我做了一个简单的登录/注册应用程序.它工作正常,但它只存储用户名和密码.
如何通过带有工作登录护照身份验证的signup.html页面将其他表单字段(如电话号码,电子邮件,爱好,性别)存储到数据库中?任何人都可以有解决方案,所以我可以存储数据库中的所有字段....
//my schema is :--
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var userSchema = mongoose.Schema({
local : {
username : String,
gender : String,
phone : String,
email : String,
password : String
}
});
userSchema.methods.generateHash = function(password) {
return bcrypt.hashSync(password, bcrypt.genSaltSync(8), null);
};
userSchema.methods.validPassword = function(password) {
return bcrypt.compareSync(password, this.local.password);
};
var User = mongoose.model('user', userSchema);
module.exports = User;
Run Code Online (Sandbox Code Playgroud)
在此代码中,我使用电子邮件,用户名,密码,性别电话的架构以及signup.html页面中的字段.但它只存储用户名和密码字段.........
打开passport.js文件(gernally在config文件夹中)
找到这行代码.
passport.use('local-signup', new LocalStrategy({ // 'login-signup' is optional here
usernameField : 'email',
passwordField : 'password',
passReqToCallback : true },function(req, email, password, done) {
var gender = req.body.gender;
var username = req.body.username;
var phone = req.body.phone;
// Now you can access gender username and phone
}));
Run Code Online (Sandbox Code Playgroud)
添加选项passReqToCallback,您可以从以下位置访问所有请求正文数据req.body:
passport.use(new LocalStrategy({
passReqToCallback: true
}, function (req, username, password, cb) {
// Form fields are in req.body if using body-parser
// ...
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2045 次 |
| 最近记录: |