У меня проблемы с аутентификацией, аутентификация пользователя на сервере ldap.Я вставляю важный код ниже.Может кто-нибудь сказать мне, что недостающие части этого или этот модуль nodejs может делать то, что я хочу сделать?Я пробовал это в течение двух дней и не смог найти решение.
const passport = require('passport');
const ldapStrategy = require('passport-ldapauth').Startegy;
var LDAP_OPTS = {
usernameField: 'myAccountUsername',
passwordField: 'myPassword',
server: {
url: 'ldap://xx.xx.x.xx:389',
bindDN: 'dn related data',
bindCredentials: 'adminAccountPassword',
searchBase: 'dc=xyz,dc=com',
searchFilter: '(sAmAccountName={{myUserNameForTheAccount}})'
},
};
passport.use(new ldapStrategy(LDAP_OPTS));
app.use(passport.initialize());
module.exports.login = function(req, res, next){
passport.authenticate('ldapauth', function(err, user, info){
console.log('inside authent '+JSON.stringify(info))
if(err){
return next(err);
}
if(!user){
res.status(401).json({ success: false, message: 'authentication failed' })
// res.send({success: false})
console.log('inside user: '+user)
} else {
res.status(200).json({success: true})
// res.send({success: true})
}
console.log('after response..')
})(req, res, next)
Когда я запускаю это, я получаю {"message": "Отсутствуют учетные данные"}.Я погуглил много ресурсов, но не нашел подходящего.Есть примеры, использующие «passport-local», но я не смог найти пример «passport-ldapauth», в котором есть аутентификация пользователя по его имени пользователя и паролю.Даже в этом примере мы только что отправили запрос на сервер ldap, чтобы проверить существование пользователя, но я не знаю, как проверить его пароль после возвращения информации этого пользователя.