【发布时间】:2015-08-22 19:17:11
【问题描述】:
我正在尝试使用 passport-ldapauth npm 验证 openLDAP 用户名和密码。在执行以下代码时,我总是遇到错误
{ message: 'Missing credentials' }。请帮我看看我的代码出了什么问题。
var connect = require('connect'),
app = connect(),
passport = require('passport'),
LdapStrategy = require('passport-ldapauth');
// Credentials from the free LDAP test server by forumsys
// More info at: http://www.forumsys.com/tutorials/integration-how-to/ldap/online-ldap-test-server/
var OPTS = {
server: {
url: 'ldap://<ip>',
bindDn: '<admin username>',
bindCredentials: '<admin password>',
usernameField: "<passing actual username>",
passwordField: "<password>"
}
};
passport.use(new LdapStrategy(OPTS));
app.use(passport.initialize());
app.use(connectRoute(function (router) {
router.post('/login', function (req, res, next) {
passport.authenticate('ldapauth', {session: false}, function (err, user, info) {
console.log(info);
if (err) {
return next(err); // will generate a 500 error
}
// Generate a JSON response reflecting authentication status
if (!user) {
return res.send({success: false, message: 'authentication failed'});
}
return res.send({success: true, message: 'authentication succeeded'});
})(req, res, next);
});
}))
app.listen(8080);
更多详情请看这个badRequestMessage flash message for missing username/password (default: 'Missing credentials')
【问题讨论】:
-
您的 OPTS 对象中的值实际上是上面显示的,还是您为这篇文章删除了它们?
-
@HeadCode 我已经删除了这篇文章的实际值
-
我也一直在研究 passport-ldapauth,但我想说,只有当您真正了解如何使用它时,文档才是好的。你可以看看这篇文章:stackoverflow.com/questions/28159093/…。一方面,您似乎提供了用户名和密码,而您应该只提供这些东西的表单字段名称。
-
@HeadCode 根据npmjs.com/package/passport-ldapauth 中给出的文档,我尝试了 Express 示例,它给出了错误“Missing Credentials”
-
我没有时间深入研究这个问题,但我很想知道您是否找到了解决方案。如果你这样做了,请发布!
标签: node.js ldap passport.js openldap