我正在尝试使用身份验证用户名和密码 护照-ldapauth npm。在执行以下代码时我总是这样 将错误视为错误请求。请帮助我解决我的问题 代码。
var express = require('express'),
passport = require('passport'),
bodyParser = require('body-parser'),
LdapStrategy = require('passport-ldapauth');
// Credentials from the free LDAP test server by LDAP Search
var OPTS = {
server: {
url: 'ldap://54.227.207.201:389',
bindDn: 'CN=simple One,CN=Users,DC=test,DC=local',
bindCredentials: 'password',
searchBase: 'ou=passport-ldapauth',
searchFilter: '(uid={{username}})'
},
usernameField: "CN=simple One,CN=Users,DC=test,DC=local",
passwordField: "password"
};
var app = express();
passport.use(new LdapStrategy(OPTS));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use(passport.initialize());
app.use(passport.session());
app.post('/login', passport.authenticate('ldapauth', {session: false}), function(req, res) {
// you can refer code from here:https://github.com/vesse/passport-ldapauth
res.send({status: 'ok'});//will generate error 'Bad Request'
});
/*For more info:https://github.com/vesse/passport-ldapauth/issues/45*/
答案 0 :(得分:1)
passport-ldapauth
在either username or password value is missing时返回错误请求。在你的情况下,这可能是因为你定义了usernameField: "CN=simple One,CN=Users,DC=test,DC=local"
,即。您的登录表单应具有用readme中提到的具有该名称的字段登录时使用的用户名。
如果您的登录表单(或XHR帖子)在名称为weirdUsername
的字段中发送用户名,例如。 <input type="text" name="weirdUsername"/>
,您可以定义usernameField : weirdUsername
。自述文件中再次提到的默认值为用户名username
和密码password
。