Я пытаюсь использовать passportjs с passport-windowsauth для аутентификации моего экспресс-приложения в активном каталоге. Тем не менее, паспорт не может найти поля username
и password
в теле моего post
для маршрута входа в систему. Я получаю следующую ошибку:
TypeError: Cannot read property 'username' of undefined
app.js
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var passport = require('passport');
var WindowsStrategy = require('passport-windowsauth');
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var app = express();
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use(passport.initialize());
app.use('/', indexRouter);
app.use('/users', usersRouter);
passport.use(new WindowsStrategy({
ldap: {
url: 'ldap://example.com/DC=example,DC=com',
base: 'DC=example,DC=com',
bindDN: 'someuser',
bindCredentials: 'somepassword'
},
integrated: false
}, function(user, done){
if (user) {
var user = user
return done(null, user);
} else {
return done(null, false);
}
}));
module.exports = app;
. / Маршруты / index.js
var express = require('express');
var router = express.Router();
var passport = require('passport');
router.get('/login', function(req, res, next) {
res.send('<form action="/login" method="post"><div><label>Username:</label><input type="text" name="username"/></div>' +
'<div><label>Password:</label><input type="password" name="password"/></div><div><input type="submit" value="Log In"/></div></form>')
});
router.post('/login', passport.authenticate('WindowsAuthentication', {session: false, successRedirect: '/test'})
);
router.get('/test', function(req, res, next) {
res.send("Yay!");
});
module.exports = router;
Я проверил учетную запись пользователя, которую я использую для привязки, и учетные данные, безусловно, действительны.
Любая помощь будет принята с благодарностью, поскольку я почесываю голову, размышляя о том, чего мне не хватает.