node.js - 如何重定向到 Passport 本地错误页面

标签 node.js passport.js

如何在使用 passport-local 时重定向到(示例数据库)错误的自定义页面并显示消息。这是代码:

passport.use(new LocalStrategy({ 
  passReqToCallback: true 
  }, function( req, username, password, done ) {
    done({error:'mycustomerrormessage'});
  }
));

路由看起来像:

app.post('/auth/local', passport.authenticate('local', { 
    successRedirect: '/', 
    failureRedirect: '/', 
    failureFlash: true 
}));

当错误发生时,url 停留在 /auth/local 上,并带有令人讨厌的 [object Object] 内容。

如果我打电话

done( null, false, { message: "error message"})

比passport重定向到/,我可以flash消息,但是如果我使用第一个非null参数调用verify函数并处理该错误,我该如何设置重定向?

最佳答案

基于express文档,您可以配置错误处理中间件如下:

app.use(function(err, req, res, next){
  console.error(err.stack);
  res.send(500, 'Something broke!');
});

四个参数签名表明这是一个错误处理定义。

参见http://expressjs.com/guide.html#error-handling

关于node.js - 如何重定向到 Passport 本地错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13974885/

相关文章:

javascript - 发送并处理 POST 请求

node.js - NodeJS套接字挂起超时

javascript - socket.io 与 socket.io-redis : get all socket object in a room

javascript - 授权回调错误

javascript - 使用 passport.js 和 express.js 进行单元测试登录

javascript - 如何在 Node JS 中打印对象

javascript - 如何解析 Node.js 和 mongodb 查询中的对象数组?

javascript - 使用客户端路由进行 Node 身份验证

node.js - 检测提供商是否使用 Passport.js 注销?

javascript - Passport.js 表达观点