0

我正在设置 Passport 以通过 LDAP(使用passport-ldap)进行身份验证,并且每当用户无法登录时,它都会成功加载我的failureDirect链接。但是,如果我成功登录(或者我认为),程序就会挂起。没有收到任何错误;我的浏览器似乎正在加载(“等待服务器......”)。有什么方法可以准确地查看 Passport 冻结的位置,而无需遍历被调用的函数的整个跟踪并console.log在每个函数中添加语句?

在我的路线中:

app.post('/users/session',
  passport.authenticate('ldap', {
    failureRedirect: '/login_fail',
    successRedirect: '/admin'
  }), users.session)

在我的passport.js文件中:

var LDAPStrategy = require('passport-ldap').Strategy

[...]

passport.use(new LDAPStrategy({
  server:{
    url: 'ldap://[MY_URL]:3268',
    },
  base: '[HIDDEN]',
  search: {
    filter: "(&(objectclass=user)(sAMAccountname={{username}}))",
    }
  },
  function(user, done) {
    console.log("Success")
    return done(null, JSON.parse(user));
  }
))
4

2 回答 2

1

节点调试器可能有点冗长。好旧的 console.error 应该可以解决问题。该界面与console.log 相同,但console.error 会阻塞,直到IO 完成以显示文本。这将为您提供有关代码死亡位置的准确指示。唯一的缺点是您必须添加几行代码,如下所示:

console.error( 'debug1' );
console.error( 'debug2' );
console.error( 'debug3' );
于 2013-08-09T20:53:28.613 回答
0

你可能想看看这个: http ://nodejs.org/api/debugger.html

Node.js 调试器。我想这对于单步执行代码以找出冻结的位置会很有帮助。

除非您看到浏览器本身冻结,在这种情况下使用标准代码检查器应该可以工作(Firebug 或 Chrome 检查器)

于 2013-08-09T19:47:24.777 回答