2017-08-23 7 views
0

Voici comment je configurer ma stratégie passeport ldapauth:Passeport-ldapauth: Erreur: getaddrinfo ENOTFOUND

let OPT = { 
    server: { 
     url: 'ldap://****:389', 
     bindDN: "", 
     bindCredentials: "", 
     searchBase: 'ou=Users,dc=astron,dc=hu', 
     searchFilter: "(uid={{username}})" 
    }, 
    usernameField: 'username', 
    passwordField: 'password', 
}; 
passport.use(new LdapStrategy(OPT, function (user, done) { 
    if (user != null) { 
     return done(null, user); 
    } else return done(new Error("i dont know"), null) 
})) 
app.use(passport.initialize()) 

Ceci est où est l'utiliser:

async authenticate(req, res): Promise <boolean> { 
     return new Promise <boolean> ((resolve, 
        reject) => { 
        let authenticate: express.RequestHandler = <express.RequestHandler>passport.authenticate('ldapauth', (error, user, info) => { 
       if (error) { 
        return reject(error); 
       } 
       if (!user) { 
        return resolve(false); 
       } 
       req.user = user; 
       resolve(true); 
      }); 
      authenticate(req, res, 
       null); 
     } 
     ) 
    } 

Et je reçois cette erreur:

Error: getaddrinfo ENOTFOUND **** ****:389

at errnoException (dns.js:28:10)

at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)

Ma question serait pourquoi ai-je l'erreur? Je suis sûr que l'URL et le nom d'utilisateur/mot de passe est correct.

Répondre

0

Il y a une seule signification de cette erreur, votre application de noeud ne peut pas se connecter au serveur LDAP. Peut-être que vous donnez une adresse IP/hôte correcte, mais ce n'est pas accessible depuis la machine sur laquelle vous exécutez l'application de nœud.

Vous pouvez essayer de vous connecter à ldap avec certains outils de la même machine et voir si elle est capable de se connecter au serveur.

+0

merci je vais regarder dedans –

0

J'ai la même erreur lors du développement. J'ai utilisé restify (let restify = require('restify')) pour faire un appel https, dans la console il montre ENOTFOUND erreur sans contexte spécifique. Puis-je passer à utiliser d'autres approche

  1. https (require('https'))
  2. XHR (const XMLHttpRequest = require('xhr2'))

J'utilise à la fois pour faire appel ajax à la même API. Cela fonctionne sans erreur.