I "m gặp khó khăn chứng thực cho một Directory Server tích cực với các công cụ/ứng dụng được đề cập trong tiêu đề.LDAP Authentication với NodeJS, Express, và Hộ chiếu-ldapauth
Tôi đang sử dụng một môi trường thử nghiệm AD tìm thấy here Dưới đây là các đoạn mã có liên quan, nếu bất kỳ ai có bất kỳ đề xuất nào tôi thực sự sẽ đánh giá cao.
Hiện tại, lỗi tôi nhận được là "tên người dùng/mật khẩu không hợp lệ". Tôi không chắc chắn đây có phải là tài khoản bindDn/pw hoặc người dùng nhập vào biểu mẫu. Theo dự án hộ chiếu-ldapauth là:
invalidCredentials flash message for InvalidCredentialsError
NoSuchObjectError, and
/no such user/i LDAP errors (default: 'Invalid username/password')
Xin cảm ơn trước.
KHÁCH HÀNG - auth.service.js
...
login: function(user, callback) {
var cb = callback || angular.noop;
var deferred = $q.defer();
$http.post('/auth/ldap', {
email: user.email,
password: user.password
}).
success(function(data) {
$cookieStore.put('token', data.token);
currentUser = User.get();
deferred.resolve(data);
return cb();
}).
error(function(err) {
this.logout();
deferred.reject(err);
return cb(err);
}.bind(this));
return deferred.promise;
},
...
MÁY CHỦ index.js
'use strict';
var express = require('express');
var passport = require('passport');
var auth = require('../auth.service');
var router = express.Router();
router.post('/', function(req, res, next) {
passport.authenticate('ldapauth', function (err, user, info) {
var error = err || info;
if (error) return res.json(401, error);
if (!user) return res.json(404, {message: 'Something went wrong, please try again.'});
var token = auth.signToken(user._id, user.role);
res.json({token: token});
})(req, res, next)
});
module.exports = router;
MÁY CHỦ passport.js
var passport = require('passport');
var LdapStrategy = require('passport-ldapauth').Strategy;
exports.setup = function (User, config) {
passport.use(new LdapStrategy({
usernameField: 'email',
passwordField: 'password',
server: {
url: 'ldap://ldap.forumsys.com:389',
bindDn: "cn=read-only-admin,dc=example,dc=com",
bindCredentials: "password",
searchBase: 'ou=mathematicians,dc=example,dc=com',
searchFilter: 'uid={{username}}'
}
},
function (user, done) {
return done(null, user);
}
));
};