我想了解LocalStrategy是如何工作的。
这是我的服务器文件的一部分:
var passport = require('passport');
var express = require('express');
/* other initializations */
var app = express();
passport.use = new LocalStrategy(
function(email, password, done) {
module.exports.findByUsername(email, function(err, user){
if (err) throw err;
if(!user) {
done(null, false, { message: 'Incorrect username.' });
}
else if(user.password != password) {
done(null, false, { message: 'Incorrect password.' });
}
else {
return done(null, user);
}
});
}
)
app.post("/login"
, passport.authenticate('local',{
successRedirect : "/",
failureRedirect : "/login",
}) ,
function(){
console.log("post /login");
}
);现在,我从客户端浏览器向http://localhost:8000/login发送一个http post请求。如果认证成功,那么用户将被重定向到根页面"/",如果失败,用户将被重定向到登录页面。
问题是,当我们定义一个新的LocalStrategy时,我定义了一个function(email,password, done){...}。但是,当我在app.post("/login", ...){...}调用这个函数时,我该如何传递电子邮件和密码参数呢?
发布于 2013-11-12 22:15:55
默认情况下,passport假定您使用input name='username' input name='password'发布表单。按照passport docs中的说明覆盖它
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'password'
},
function(email, password, done) {
// ...
}
));https://stackoverflow.com/questions/19931263
复制相似问题