【发布时间】:2018-01-31 23:27:53
【问题描述】:
这就是我设置护照-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)
我的问题是为什么我会收到错误消息?我确定网址和用户名/密码正确。
【问题讨论】:
标签: node.js typescript dns ldap passport.js