node.js下LDAP查詢實(shí)例分享
目標(biāo):
從一個(gè)LDAP Server獲取uid=kxh的用戶數(shù)據(jù)
LDAP地址為:ldap://10.233.21.116:389
在工程根目錄中,先npm一個(gè)LDAP的訪問(wèn)庫(kù)ldpajs
npm install ldapjs
在工程根目錄中,創(chuàng)建一個(gè)app.js
var ldap = require("ldapjs");
//創(chuàng)建LDAP client,把服務(wù)器url傳入
var client = ldap.createClient({
url: 'ldap://10.203.24.216:389'
});
//創(chuàng)建LDAP查詢選項(xiàng)
//filter的作用就是相當(dāng)于SQL的條件
var opts = {
filter: '(uid=kxh)', //查詢條件過(guò)濾器,查找uid=kxh的用戶節(jié)點(diǎn)
scope: 'sub', //查詢范圍
timeLimit: 500 //查詢超時(shí)
};
//將client綁定LDAP Server
//第一個(gè)參數(shù):是用戶,必須是從根節(jié)點(diǎn)到用戶節(jié)點(diǎn)的全路徑
//第二個(gè)參數(shù):用戶密碼
client.bind('uid=supbind,cn=users,dc=tiger,dc=com', '123456', function (err, res1) {
//開(kāi)始查詢
//第一個(gè)參數(shù):查詢基礎(chǔ)路徑,代表在查詢用戶信心將在這個(gè)路徑下進(jìn)行,這個(gè)路徑是由根節(jié)開(kāi)始
//第二個(gè)參數(shù):查詢選項(xiàng)
client.search('DC=tiger,DC=com', opts, function (err, res2) {
//查詢結(jié)果事件響應(yīng)
res2.on('searchEntry', function (entry) {
//獲取查詢的對(duì)象
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());
});
//查詢錯(cuò)誤事件
res2.on('error', function(err) {
console.error('error: ' + err.message);
//unbind操作,必須要做
client.unbind();
});
//查詢結(jié)束
res2.on('end', function(result) {
console.log('search status: ' + result.status);
//unbind操作,必須要做
client.unbind();
});
});
});
- Node.js Sequelize如何實(shí)現(xiàn)數(shù)據(jù)庫(kù)的讀寫(xiě)分離
- Sequelize 常用操作詳解及實(shí)例代碼
- node.js Sequelize實(shí)現(xiàn)單實(shí)例字段或批量自增、自減
- windows系統(tǒng)下簡(jiǎn)單nodejs安裝及環(huán)境配置
- 一行命令搞定node.js 版本升級(jí)
- 跟我學(xué)Nodejs(一)--- Node.js簡(jiǎn)介及安裝開(kāi)發(fā)環(huán)境
- Node.js(安裝,啟動(dòng),測(cè)試)
- Node.js實(shí)戰(zhàn) 建立簡(jiǎn)單的Web服務(wù)器
- Sequelize中用group by進(jìn)行分組聚合查詢
相關(guān)文章
puppeteer實(shí)現(xiàn)html截圖的示例代碼
通過(guò)Puppeteer的提供的api直接控制Chrome模擬大部分用戶操作來(lái)進(jìn)行UI Test或者作為爬蟲(chóng)訪問(wèn)頁(yè)面來(lái)收集數(shù)據(jù),這篇文章主要介紹了puppeteer實(shí)現(xiàn)截圖的示例代碼,感興趣的可以了解一下2019-01-01
如何降低node版本,怎樣實(shí)現(xiàn)降低node版本
這篇文章主要介紹了如何降低node版本,怎樣降低node版本問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
輕松創(chuàng)建nodejs服務(wù)器(8):非阻塞是如何實(shí)現(xiàn)的
這篇文章主要介紹了輕松創(chuàng)建nodejs服務(wù)器(8):非阻塞是如何實(shí)現(xiàn)的,本文著重分析非阻塞的實(shí)現(xiàn),對(duì)代碼進(jìn)行了分解,需要的朋友可以參考下2014-12-12
Node.js?中的?module.exports?與?exports區(qū)別介紹
這篇文章主要介紹了Node.js中的module.exports與exports區(qū)別介紹,每個(gè)模塊中都有module對(duì)象,存放了當(dāng)前模塊相關(guān)的信息,更多相關(guān)內(nèi)容需要的朋友可以參考一下2022-09-09
Node.js API詳解之 tty功能與用法實(shí)例分析
這篇文章主要介紹了Node.js API詳解之 tty功能與用法,結(jié)合實(shí)例形式分析了Node.js API中tty的基本功能、用法及終端操作相關(guān)使用技巧,需要的朋友可以參考下2020-04-04
Mac下安裝node.js及環(huán)境配置全過(guò)程
這篇文章主要介紹了Mac下安裝node.js及環(huán)境配置全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05

