pikachu-be/test/test2.js
2019-05-13 20:14:39 +08:00

89 lines
2.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var express = require('express');
var ldap = require('ldapjs');
var app = express();
//创建LDAP client把服务器url传入
var client = ldap.createClient({
url: 'ldap://ldap.kingsome.cn:389'
});
//创建LDAP查询选项
//filter的作用就是相当于SQL的条件
var opts = {
// filter: '(objectClass=posixAccount)', //查询条件过滤器查找uid=kxh的用户节点
filter: '(uid=yulixing1)', //查询条件过滤器查找uid=kxh的用户节点
scope: 'sub', //查询范围
timeLimit: 500 //查询超时
};
var user = [];
app.get('/', function(req, res, next) {
//将client绑定LDAP Server
//第一个参数:是用户,必须是从根节点到用户节点的全路径
//第二个参数:用户密码
client.bind('cn=admin,dc=kingsome,dc=cn', 'milesQWE321', function(err, res1) {
console.log(err);
//开始查询
//第一个参数:查询基础路径,代表在查询用户信心将在这个路径下进行,这个路径是由根节开始
//第二个参数:查询选项
client.search('ou=people,dc=kingsome,dc=cn', opts, function(err, res2) {
var entries = [];
//查询结果事件响应
res2.on('searchEntry', function(entry) {
//获取查询的对象
var user = entry.object;
entries.push(user);
users = entry;
});
res2.on('searchReference', function(referral) {
console.log('referral: ' + referral.uris.join());
});
//查询错误事件
res2.on('error', function(err) {
console.error('error: ' + err.message);
//unbind操作必须要做
client.unbind();
});
//查询结束
res2.on('end', function(result) {
console.log('search status: ' + result);
console.log(entries)
if (entries.length !== 0) {
client.bind(entries[0].dn, 'yulixing123456', function(
err,
res3
) {
if (err) {
res.send({
err: err,
errmsg: err.message
})
} else {
res.send({
result: entries,
state: 0
});
}
});
} else {
res.send({
msg: '登录失败'
})
}
// res.send({
// entries
// })
//unbind操作必须要做
client.unbind();
});
});
});
});
app.listen('6789');