我正在设置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));
}
))
答案 0 :(得分:1)
节点调试器可能有点冗长。好旧的console.error应该做的伎俩。该接口与console.log相同,但是替代console.error阻塞,直到IO完成以显示文本。这将为您提供有关代码死亡位置的准确指示。唯一的缺点是你必须添加几行代码:
console.error( 'debug1' );
console.error( 'debug2' );
console.error( 'debug3' );
答案 1 :(得分:0)
你可能想看看这个: http://nodejs.org/api/debugger.html
Node.js调试器。我想通过代码来找出它冻结的地方会非常有用。
除非您在浏览器中看到冻结,否则使用标准代码检查器应该可以使用(Firebug或Chrome Inspector)