Javascript post API中的重定向错误
我正在使用node.js restify和passport模块,restify确保登录模块执行用户登录验证功能 以下是相关代码Javascript post API中的重定向错误,javascript,node.js,passport.js,restify,passport-local,Javascript,Node.js,Passport.js,Restify,Passport Local,我正在使用node.js restify和passport模块,restify确保登录模块执行用户登录验证功能 以下是相关代码 var passport = require('passport'); var Strategy = require('passport-local').Strategy; passport.use(new Strategy( function(username, password, cb) { db.users.findByUsername
var passport = require('passport');
var Strategy = require('passport-local').Strategy;
passport.use(new Strategy(
function(username, password, cb) {
db.users.findByUsername(username, function(err, user) {
if (err) { return cb(err); }
if (!user) { return cb(null, false); }
if (user.password != password) { return cb(null, false); }
return cb(null, user);
});
}));
passport.serializeUser(function(user, cb) {
cb(null, user.id);
});
passport.deserializeUser(function(id, cb) {
db.users.findById(id, function (err, user) {
if (err) { return cb(err); }
cb(null, user);
});
});
var server = restify.createServer({
name: 'myapp',
version: '1.0.0'
});
var api_post_login = function (app) {
function respond(req, res, next) {
res.redirect('/');
return next();
}; //function respond(req, res, next) {
// Routes
app.post('/login', passport.authenticate('local', { successReturnToOrRedirect: '/', failureRedirect: '/login' }) );
} //var api_get_login = function (app) {
api_post_login(server);
问题在于api\u post\u login()
。当执行HTTP post以验证用户名和密码时,在登录页面调用此函数时,出现如下错误:
{
code: "InternalError",
message: "res.redirect() requires a next param (function) is required"
}
您需要使用
passport restify
而不是passport
。因此npm安装passport restify
,然后将require更改为var passport=require('passport-restify')代码>