node.js下LDAP查询实例分享
目标:
从一个LDAPServer获取uid=kxh的用户数据
LDAP地址为:ldap://10.233.21.116:389
在工程根目录中,先npm一个LDAP的访问库ldpajs
npminstallldapjs
在工程根目录中,创建一个app.js
varldap=require("ldapjs");
//创建LDAPclient,把服务器url传入
varclient=ldap.createClient({
url:'ldap://10.203.24.216:389'
});
//创建LDAP查询选项
//filter的作用就是相当于SQL的条件
varopts={
filter:'(uid=kxh)',//查询条件过滤器,查找uid=kxh的用户节点
scope:'sub',//查询范围
timeLimit:500//查询超时
};
//将client绑定LDAPServer
//第一个参数:是用户,必须是从根节点到用户节点的全路径
//第二个参数:用户密码
client.bind('uid=supbind,cn=users,dc=tiger,dc=com','123456',function(err,res1){
//开始查询
//第一个参数:查询基础路径,代表在查询用户信心将在这个路径下进行,这个路径是由根节开始
//第二个参数:查询选项
client.search('DC=tiger,DC=com',opts,function(err,res2){
//查询结果事件响应
res2.on('searchEntry',function(entry){
//获取查询的对象
varuser=entry.object;
varuserText=JSON.stringify(user,null,2);
console.log(userText);
});
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('searchstatus:'+result.status);
//unbind操作,必须要做
client.unbind();
});
});
});