login.js
2.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
const express = require('express');
const router = express.Router();
const sendRequest = require('utils/send-request');
const sendResponse = require('utils/send-response');
const validate = require('utils/validator');
//const passport = require('utils/passport-func')();
const conf = require('utils/config');
let logoutRedirectUrl;
module.exports = function(passport) {
switch(conf.get('passport.strategy')) {
case "local":
console.log('passport local routes');
logoutRedirectUrl = conf.get('passport.routes.local.logoutRedirectUrl');
router.get('/login', (req, res) => {
res.redirect(conf.get('passport.routes.local.loginPageUrl'));
});
router.post('/login', passport.authenticate('local', { failureFlash: true }), (req, res) => {
// this function runs if success
console.log('post login');
req.session.regenerate(function(err) {
if (err) {
res.json(err);
}
});
console.log('Login success... returning user in json');
res.json(req.user);
});
break;
case "saml":
logoutRedirectUrl = conf.get('passport.routes.saml.logoutRedirectUrl');
router.get('/login',
passport.authenticate('saml',
{
successRedirect: '/',
failureRedirect: '/login'
})
);
router.post(conf.get('passport.configStrategy.saml.path'),
passport.authenticate('saml',
{
failureRedirect: '/',
failureFlash: false
}),
(req, res) => {
// code to get user permission
console.log(req.user);
// redirect to dashboard
res.redirect('http://localhost:4200');
}
);
break;
default:
logoutRedirectUrl = '/';
}
router.get('/loggedin', (req, res) => {
if (req.isUnauthenticated()) {
console.log('GET /loggedin not authenticated');
return res.json({ error: 'not logged in'});
} else {
console.log('authenticated');
console.log('GET /loggedin ' + req.session.id);
return res.json(req.user);
}
});
router.get('/logout', (req, res) => {
console.log('User logged out.');
req.session.destroy();
req.logout();
res.redirect(logoutRedirectUrl);
});
return router;
};