Skip to content
Snippets Groups Projects
Commit 46bef15f authored by Guillaume WANG's avatar Guillaume WANG
Browse files

stuff again

parent d3c0a506
No related branches found
No related tags found
No related merge requests found
......@@ -2,7 +2,7 @@
* @file Initialise et configure le serveur Express sur lequel tourne le back.
*
* Inclut les middlewares des packages utilisés: apollo-server, passportjs, morgan...
* et définit le middleware de notre API.
* et branche nos propres middleware : l'API GraphQL et l'interface admin du backend (adminview).
* Pour comprendre ce que fait chaque package, se référer à leur page sur https://www.npmjs.com.
*
* On peut considérer que les app.use (et app.get et app.post) sont pattern-matchés et
......@@ -16,7 +16,7 @@ import bodyParser from 'body-parser';
import { express as graphqlVoyager } from 'graphql-voyager/middleware';
import { ApolloServer } from 'apollo-server-express';
import schema from './graphql/schema'; // definition du schéma et des resolvers
// l'interface admin du back (adminview)
// l'interface admin du backend (adminview)
import router from './adminview/admin.router';
// packages pour l'authentification
import passport from 'passport';
......@@ -39,27 +39,24 @@ app.use(bodyParser.json()); //parses bodies of media type "application/json"
app.use(bodyParser.urlencoded({ //parses bodies of media type "application/x-www-form-urlencoded"
extended: true //use qs library (see https://www.npmjs.com/package/body-parser#bodyparserurlencodedoptions)
}));
// parse Cookie header and populate req.cookies with an object keyed by the cookie names
app.use(cookieParser());
// ne *pas* inclure de header HTTP publicisant que l'application tourne sous Express
app.disable('x-powered-by');
// setup morgan (HTTP request logger middleware)
app.use(morgan('dev'));
/**
* @desc SETUP DE ADMINVIEW
* @desc Authentification de la requête (cookie)
* =============================================
* Si la requête possède un cookie, on regarde dans la session s'il correspond a un cookie valide.
* Si oui, on récupère l'uid de l'utilisateur correspondant dans la session afin de le passer à GraphQL dans le context.
* Si non, on passe quand meme un uid spécial signifiant que l'utilisateur n'est pas authentifié.
* NB : la session ne contient que les correspondances cookie / uid, et rien d'autre.
*/
// setting up view engine for pug, for adminview
console.log("Express app is running at", __dirname);
let viewpath = path.resolve(__dirname, 'views');
app.set('views', viewpath);
app.set('view engine', 'pug');
// load the session
// from passport middleware's perspective: authenticate request "against the session"
/**
* @desc AUTHENTIFICATION POUR LES REQUETES POSSEDANT UN COOKIE ET PROVENANT D'UN UTILISATEUR DEJA AUTHENTIFIE
* Remarque: introduit aussi les middlewares session et passport,
* qui sont aussi utiles pour l'authentification dans les autres cas.
*/
/**
* WTF??? why is sessionSecret in ldap_config.json? it has nothing to do with ldap.
......@@ -242,6 +239,16 @@ app.use('/voyager',
graphqlVoyager({ endpointUrl: '/graphql' })
);
/**
* @desc SETUP DE L'INTERFACE ADMIN DU BACKEND ("ADMINVIEW")
*/
// setting up view engine for pug, for adminview
console.log("Express app is running at", __dirname);
let viewpath = path.resolve(__dirname, 'views');
app.set('views', viewpath);
app.set('view engine', 'pug');
// on utilise un express.Router qui sert a creer un "sous-middleware stack".
app.use('/adminview', router); // catches and resolves HTTP requests to paths '/adminview/*'
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment