]> git.immae.eu Git - perso/Immae/Projets/Nodejs/Surfer.git/blame - src/auth.js
No need to log profile on every login
[perso/Immae/Projets/Nodejs/Surfer.git] / src / auth.js
CommitLineData
591ad40c
JZ
1'use strict';
2
3var passport = require('passport'),
4 LdapStrategy = require('passport-ldapjs').Strategy;
5
a90a633f
JZ
6passport.serializeUser(function (user, done) {
7 console.log('serializeUser', user);
cfe24a27 8 done(null, user.uid);
a90a633f
JZ
9});
10
11passport.deserializeUser(function (id, done) {
12 console.log('deserializeUser', id);
cfe24a27 13 done(null, { uid: id });
a90a633f
JZ
14});
15
591ad40c
JZ
16var LDAP_URL = process.env.LDAP_URL;
17var LDAP_USERS_BASE_DN = process.env.LDAP_USERS_BASE_DN;
18
19if (LDAP_URL && LDAP_USERS_BASE_DN) {
20 console.log('Enable ldap auth');
21
a90a633f 22 exports.ldap = passport.authenticate('ldap');
591ad40c
JZ
23} else {
24 exports.ldap = function (req, res, next) {
a90a633f
JZ
25 console.log('Disable ldap auth, use developer credentials!');
26
394dca7e
JZ
27 if (req.query.username !== 'test') return res.send(401);
28 if (req.query.password !== 'test') return res.send(401);
a90a633f 29
591ad40c
JZ
30 next();
31 };
32}
33
34var opts = {
35 server: {
36 url: LDAP_URL,
37 },
38 base: LDAP_USERS_BASE_DN,
39 search: {
b99589fc 40 filter: '(|(username={{username}})(mail={{username}}))',
591ad40c
JZ
41 attributes: ['displayname', 'username', 'mail', 'uid'],
42 scope: 'sub'
43 },
a90a633f 44 uidTag: 'cn',
591ad40c
JZ
45 usernameField: 'username',
46 passwordField: 'password',
47};
48
49passport.use(new LdapStrategy(opts, function (profile, done) {
591ad40c
JZ
50 done(null, profile);
51}));