我正在尝试使用 ldap js 创建登录身份验证。我设置了所有凭据,一切正常,但问题是我可以只用他的 Uid(用户 id 又名用户名)绑定用户,它没有要求输入密码,我不知道如何解决这个问题必须要求提供 Uid 和 userPAssword 才能连接
我尝试使用包括 userPassword 在内的相同凭据进行连接,但它对我不起作用
ldapConfig.js 在这个文件中我设置了所有的 ldap 配置
'url': 'ldap://*************',
'port': '***',
'timeout': '',
'connectTimeout': '',
'secret': '**********',
'reconnect': true,
'filtre': '(&(ObjectClass=*******)',
'search_dn': 'ou=******,dc=****,dc=****',
'domain': 'cn=******,dc=****,dc=****'
这个文件中的 login.js 我试图连接到 ldap 服务器,它工作得很好,然后我想通过 uid 获取用户
const server = ldapConfig.url
const ldapDomain = ldapConfig.domain
const password = ldapConfig.secret
const searchDomain = ldapConfig.search_dn
const client = ldap.createClient({
url: server
})
client.bind(ldapDomain, password, err => {
assert.ifError(err)
})
const opts = {
scope: 'sub',
filter: ldapConfig.filtre + `(mail=${request.body.mail}))`
}
client.search(searchDomain, opts, (err, res) => {
assert.ifError(err)
res.on('searchEntry', entry => {
console.log(entry.object)
} )
我希望很清楚。谢谢