0

I'm setting up Passport to authenticate via LDAP (using passport-ldap) and whenever a user fails to log in, it successfully loads my failureDirect link. However, if I do log in successfully (or so I think) the program just hangs. There aren't any errors received; my browser just seems like it's loading ("waiting for server..."). Is there any way to see exactly where Passport is freezing without going through the entire trace of functions that are called and putting a console.log statement in each function?

in my routes:

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

in my passport.js file:

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 に答える