]> git.immae.eu Git - perso/Immae/Projets/Nodejs/Surfer.git/blame - src/auth.js
Add auth to client
[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);
8 done(null, user.id);
9});
10
11passport.deserializeUser(function (id, done) {
12 console.log('deserializeUser', id);
13 done(null, { id: id });
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
27 if (req.query.username !== 'username') return res.send(401);
28 if (req.query.password !== 'password') return res.send(401);
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: {
40 filter: '(uid={{username}})',
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) {
50 console.log('ldap', profile);
51 done(null, profile);
52}));