gpt4 book ai didi

javascript - post API 中的重定向错误

转载 作者:行者123 更新时间:2023-11-30 12:08:56 24 4
gpt4 key购买 nike

我正在使用 node.js restify 和 passport 模块,restify-ensure-login 模块来执行用户登录认证功能。

https://www.npmjs.com/package/restify-ensure-login

相关代码如下;

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_post_login()。当执行 HTTP post 以验证用户名和密码时,在登录页面调用此函数时,会出现如下错误;

{
code: "InternalError",
message: "res.redirect() requires a next param (function) is required"
}

最佳答案

您需要使用passport-restify 而不是passport。所以 npm install passport-restify,然后将 require 更改为 var passport = require('passport-restify');

关于javascript - post API 中的重定向错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34393300/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com