archon/routes/auth.js

33 lines
874 B
JavaScript

const ldap = require('ldapjs');
exports.getLogin = (req, res, next) => {
res.render('auth/login');
};
exports.postLogin = (req, res, next) => {
bindHost = req.body.ldap_bind_host;
bindDn = req.body.ldap_bind_dn;
bindPw = req.body.ldap_bind_pw;
client = ldap.createClient({url: 'ldap://' + bindHost + '/'});
client.bind(bindDn, bindPw, (err) => {
if (err) {
console.log('There was an error while logging in. Please try again.');
res.redirect('/auth/login');
return next(err);
} else {
console.log('Success!');
req.session.ldap_bind_host = bindHost;
req.session.ldap_bind_dn = bindDn;
req.session.ldap_bind_pw = bindPw;
baseDnBits = bindDn.split(',');
baseDnBits.shift();
baseDn = baseDnBits.join(',');
req.session.ldap_base_dn = baseDn;
return res.redirect('/');
}
});
};