Сначала я хочу отметить, что я не специалист по LDAP.
Мне нужно получить от ldap моей компании некоторую информацию, включая фотографию пользователя.
Моя проблема в том, что после того, как я получу всю необходимую информацию, thumbnailPhoto
кажется как-то поврежден. Я покажу пример:
\ufffdPNG\r\n\u001a\n\u0000\u0000\u0000\rIHDR\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\u ...
Впервые я заметил это, когда попытался применить его на своем клиенте переднего плана и не смог создать образ из возвращающегося буфера. Плюс, когда я зарегистрировался в LDAP, чтобы увидеть, что размер возвращаемой фотографии почти в два раза больше.
Я проверил, была ли проблема с тем, как фотография была сохранена в LDAP, копия вставлена в конвертер, и все было в порядке.
Я приведу фрагмент кода того, как я получаю информацию из LDAP с библиотекой activedirectory :
const ActiveDirectory = require('activedirectory');
exports = module.exports = () => {
return {
auth: (doc) => {
let user = 'project@ad.company.com',
passwd = 'password provided by IT team';
return new Promise((resolve, reject) => {
let ad = new ActiveDirectory({
url: 'ldap://something.ad.company.com:389',
baseDN: 'OU=Company,DC=ad,DC=company,DC=com',
username: user,
password: passwd,
attributes: { user: [] }
});
ad.authenticate(doc.username, doc.password, (err, auth) => {
if(auth){
ad.findUser(doc.username, (err, user) => {
if(err){
reject(err);
} else {
resolve(user);
}
})
} else {
reject(err);
}
});
});
}
}
}
exports['@singleton'] = true;
Я боролся с этим в течение некоторого времени, но я не понимаю, что происходит. Единственная информация, которую я имею об этом, находится по этой ссылке , которая сообщает, что «ldapjs не знает, что миниатюра действительно двоичная», но это было в 2013 году.
Буду признателен за некоторую помощь или, по крайней мере, за любые другие методы или библиотеки, которые я могу использовать в узле с экспрессом.
На данный момент приложение использует:
"activedirectory": "^0.7.2",
"electrolyte": "0.3.0",
"express": "^4.16.3",
Заранее спасибо.