node.js下LDAP查询实例分享

 更新时间:2015年09月30日 10:37:01   投稿:hebedich  
这篇文章主要介绍了node.js下LDAP查询实例分享的相关资料,需要的朋友可以参考下

目标:

从一个LDAP Server获取uid=kxh的用户数据

LDAP地址为:ldap://10.233.21.116:389

在工程根目录中,先npm一个LDAP的访问库ldpajs

npm install ldapjs

在工程根目录中,创建一个app.js

var ldap = require("ldapjs");

//创建LDAP client,把服务器url传入
var client = ldap.createClient({
 url: 'ldap://10.203.24.216:389'
});

//创建LDAP查询选项
//filter的作用就是相当于SQL的条件
var opts = {
 filter: '(uid=kxh)', //查询条件过滤器,查找uid=kxh的用户节点
 scope: 'sub',    //查询范围
 timeLimit: 500    //查询超时
};

//将client绑定LDAP Server
//第一个参数:是用户,必须是从根节点到用户节点的全路径
//第二个参数:用户密码
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) {
      
      //获取查询的对象
      var user = entry.object;
      var userText = 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('search status: ' + result.status);
      //unbind操作,必须要做
      client.unbind();
    });    
    
  });
  
});

相关文章

  • puppeteer实现html截图的示例代码

    puppeteer实现html截图的示例代码

    通过Puppeteer的提供的api直接控制Chrome模拟大部分用户操作来进行UI Test或者作为爬虫访问页面来收集数据,这篇文章主要介绍了puppeteer实现截图的示例代码,感兴趣的可以了解一下
    2019-01-01
  • 如何降低node版本,怎样实现降低node版本

    如何降低node版本,怎样实现降低node版本

    这篇文章主要介绍了如何降低node版本,怎样降低node版本问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 轻松创建nodejs服务器(8):非阻塞是如何实现的

    轻松创建nodejs服务器(8):非阻塞是如何实现的

    这篇文章主要介绍了轻松创建nodejs服务器(8):非阻塞是如何实现的,本文着重分析非阻塞的实现,对代码进行了分解,需要的朋友可以参考下
    2014-12-12
  • 删除node_modules文件夹太慢的解决方案

    删除node_modules文件夹太慢的解决方案

    这篇文章主要介绍了删除node_modules文件夹太慢的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • node.js与vue cli脚手架的下载安装配置方法记录

    node.js与vue cli脚手架的下载安装配置方法记录

    这篇文章主要给大家介绍了关于node.js与vue cli脚手架的下载安装配置方法,文中通过实例代码以及图文介绍的非常详细,对大家学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01
  • Node.js 中的 module.exports 与 exports区别介绍

    Node.js 中的 module.exports 与 exports区别介绍

    这篇文章主要介绍了Node.js中的module.exports与exports区别介绍,每个模块中都有module对象,存放了当前模块相关的信息,更多相关内容需要的朋友可以参考一下
    2022-09-09
  • 深入理解node.js之path模块

    深入理解node.js之path模块

    本篇文章主要介绍了深入理解node.js之path模块,详细介绍了path模块的用法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Node.js API详解之 tty功能与用法实例分析

    Node.js API详解之 tty功能与用法实例分析

    这篇文章主要介绍了Node.js API详解之 tty功能与用法,结合实例形式分析了Node.js API中tty的基本功能、用法及终端操作相关使用技巧,需要的朋友可以参考下
    2020-04-04
  • 浅谈Nodejs应用主文件index.js

    浅谈Nodejs应用主文件index.js

    这篇文章主要介绍了浅谈Nodejs应用主文件index.js的相关资料,需要的朋友可以参考下
    2016-08-08
  • Mac下安装node.js及环境配置全过程

    Mac下安装node.js及环境配置全过程

    这篇文章主要介绍了Mac下安装node.js及环境配置全过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05

最新评论