Вот как я настроил свою стратегию Passport-ldapauth:
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())
Вот где это использовать:
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);
}
)
}
И я получаю эту ошибку:
Ошибка: getaddrinfo ENOTFOUND **** ****: 389
в errnoException (dns.js: 28: 10)
в GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js: 76: 26)
Мой вопрос: почему я получаю сообщение об ошибке? Я уверен, что URL-адрес и имя пользователя / пароль верны.