UNPKG

1.84 kBJavaScriptView Raw
1const Express = require( 'express' );
2
3const router = Express.Router();
4
5const {
6 isAuth, getToken, JWTValidation, cookieExists, deleteCookie
7} = require( './functions' );
8
9module.exports = ( config, passport ) => {
10
11 router.get(
12 config.routes.appRoute,
13 ( req, res ) => {
14 if ( isAuth( req ) ) {
15 res.render(
16 config.routes.appView,
17 {
18 user : req.user
19 }
20 );
21 }
22 else {
23 res.render(
24 config.routes.appView,
25 {
26 user : null
27 }
28 );
29 }
30 }
31 );
32
33 router.get(
34 config.routes.login,
35 passport.authenticate(
36 config.passport.strategy,
37 {
38 successRedirect : config.routes.appRoute,
39 failureRedirect : config.routes.login
40 }
41 )
42 );
43
44 router.post(
45 config.passport.saml.path,
46 passport.authenticate(
47 config.passport.strategy,
48 {
49 failureRedirect : config.routes.appRoute,
50 failureFlash : true
51 }
52 ),
53 ( req, res ) => {
54
55 res.cookie(
56 'musd_id',
57 getToken( req.user ),
58 {
59 maxAge : ( 60 * 60 * 8 ),
60 domain : '.madera.k12.ca.us'
61 }
62 );
63
64 res.redirect( config.routes.appRoute );
65 }
66 );
67
68 router.get(
69 config.routes.userRoute,
70 ( req, res ) => {
71 if ( isAuth( req ) && JWTValidation( req, res ) ) {
72 res.render(
73 config.routes.userView,
74 {
75 user : req.user
76 }
77 );
78 }
79 else {
80 res.redirect( config.routes.login );
81 }
82 }
83 );
84
85 router.get(
86 config.routes.logout,
87 ( req, res ) => {
88
89 deleteCookie( req, res );
90
91 res.redirect( config.passport.saml.logoutUrl );
92 }
93 );
94
95 router.get(
96 '/saml/get-profile',
97 ( req, res ) => {
98 if ( isAuth( req ) && cookieExists( req, res ) ) {
99 res.send( req.user );
100 }
101 else {
102 res.json( {
103 success : true,
104 redirectTo : `https://${req.headers.host}${config.routes.login}`,
105 redirect : true
106 } );
107 }
108 }
109 );
110
111 return router;
112};