Ala*_*wad 7 javascript node.js express passport.js
我是javascript,node和passportjs的新手.对不起,如果这不正确.我想在护照本地策略中使用3个参数:用户名,电子邮件,密码.可能吗?如果是这样的话?
根据passportjs:"默认情况下,LocalStrategy希望在名为username和password的参数中找到凭据.如果您的站点更喜欢以不同方式命名这些字段,则可以使用选项来更改默认值." 但我可以添加更多的参数吗?
我试过这个:
passport.use('local-signup', new LocalStrategy({
// by default, local strategy uses username and password, we will override with email
usernameField : 'username',
emailField : 'email',
passwordField : 'password',
passReqToCallback : true // allows us to pass back the entire request to the callback
},
function(req, username, email, password, done) {
console.log("username:"+username + "email:"+email + "pwd:"+password);
}));
Run Code Online (Sandbox Code Playgroud)
但它将电子邮件记录为密码和密码作为某些功能
这里有passReqToCallback参数。
passport.use(new LocalStrategy(
{
usernameField: 'username',
passwordField: 'password',
passReqToCallback: true
},
function (req, username, password, done) {
{
fieldName: req.body.fieldName,
password: password,
username: username
}
}));
Run Code Online (Sandbox Code Playgroud)
我怀疑你要做的是在他注册时保存用户的其他信息.
您的所有信息都存储在内,req.body因此您只需将其保存在回调中:
passport.use(new LocalStrategy({
usernameField: 'your_form_username_or_email_fieldname',
passwordField: 'your_form_password_fieldname'
},
function(username, password, done) {
// ...
// set the user's credentials
newUser.username = req.body.username;
newUser.email = req.body.email;
newUser.password = newUser.generateHash(password);
// ....
}
));
Run Code Online (Sandbox Code Playgroud)
没有必要更改本地策略,因为它只需要2个争论(电子邮件/用户名+密码)
| 归档时间: |
|
| 查看次数: |
3252 次 |
| 最近记录: |