Я работаю на LDAP Active Directory Войдите в нашу систему. Если пользователь там, мне нужно показать имя пользователя, адрес электронной почты и изображение профиля. Проблема в том, что не получает атрибута, связанного с изображением профиля, из ответа . После некоторого исследования я обнаружил, что есть один атрибут с именем thumbnailPhoto
, который является уменьшенным изображением для пользователя. Но я не получаю это в моем ответе. Я пробовал разные коды в activedirectory и passport-ldapauth npms , но не повезло.
Так что в настоящее время я решил придерживаться passport-ldapauth npm. А вот и мой код.
var express = require('express')
var app = express();
var bodyParser = require('body-parser');
var multer = require('multer');
var passport = require('passport');
var LdapStrategy = require('passport-ldapauth');
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With,
Content-Type, Accept");
next();
});
var OPTS = {
server: {
"url": "ldap://ip-address:389",
"bindDN": "cn=username,ou=Users,ou=user-other-ou,dc=dcname,dc=com",
"bindCredentials": "password",
"searchBase": "dc=dcname,dc=lan",
"searchFilter": "(sAMAccountName={{username}})",
},
};
passport.use(new LdapStrategy(OPTS));
app.get('/api/login', function(req, res, next) {
passport.authenticate('ldapauth', {session: false}, function(err, user, info) {
if (err) {
return res.send({ success : false, message : 'authentication failed',
"user": [] });
}
if (! user) {
return res.send({ success : false, message : 'authentication failed', "user": [] });
}
return res.send({ success : true, message : 'authentication succeeded', "user": user });
})(req, res, next);
Там, где пользователю необходимо указать профиль (я думаю, это должно быть thumbnailPhoto
) со всеми другими атрибутами.
Я пытался дать searchAttributes: ['displayName', 'mail','thumbnailPhoto']
в OPTS, который даст мне только данные атрибуты, и я получаю displayName
, mail
, но не thumbnailPhoto
.
Любая помощь будет высоко ценится, спасибо.