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

try stuff

parent 8486c97e
No related branches found
No related tags found
No related merge requests found
......@@ -13,6 +13,14 @@ import passport from 'passport';
import flash from 'connect-flash';
import { ensureLoggedIn } from 'connect-ensure-login';
import favicon from 'serve-favicon';
app.use(favicon(path.resolve('./', 'assets', 'favicon.ico')));
// specifies path to static assets. ......je comprends pas ce que c'est. TODO
app.use('/assets', express.static(path.resolve('./', 'assets')));
// router: an Express router. https://expressjs.com/en/4x/api.html#router
// = a "sub-middleware stack", a “mini-application" inside the main application
const router = Router();
router.use(flash());
......
/**
* @file Initialise et configure le serveur Express sur lequel tourne le back.
*
* La configuration inclut tout le _middleware_ définissant les API et les services
* nécessaire utilisés, comme `express-session`, GraphiQL, GraphQL Voyager.
* Inclut les middlewares des packages utilisés: apollo-server, passportjs, morgan...
* et définit le middleware de notre API.
* Pour comprendre ce que fait chaque package, se référer à leur page sur https://www.npmjs.com.
*
* @todo changer cette description... ^
* @todo qu'arrive-t-il aux requetes avec un cookie expire? elles ne sont traitees ni par passport.session() ni par passport.authenticate('ldapauth')...
* On peut considérer que les app.use (et app.get et app.post) sont pattern-matchés et
* exécutés séquentiellement. http://expressjs.com/en/guide/using-middleware.html
*
* @author manifold, kadabra
*/
......@@ -13,47 +14,46 @@ import express from 'express';
import bodyParser from 'body-parser';
// packages pour graphql
import { express as graphqlVoyager } from 'graphql-voyager/middleware';
// replacement of express-graphql, which hasn't been updated in 6 months
import { ApolloServer } from 'apollo-server-express'; //hawkspar->manifold VSCode râle ici pr moi
// typeDefs and resolvers
import schema from './graphql/schema';
// packages pour adminview
import { ensureLoggedIn } from 'connect-ensure-login';
import flash from 'connect-flash';
import router from './routing/admin.router';
import { ApolloServer } from 'apollo-server-express';
import schema from './graphql/schema'; // definition du schéma et des resolvers
// l'interface admin du back (adminview)
import router from './adminview/admin.router';
// packages pour l'authentification
import passport from 'passport';
import session from 'express-session';
import cookieParser from 'cookie-parser'; //hawkspar->manifold VSCode râle ici pr moi
import cookieParser from 'cookie-parser';
import cors from 'cors';
// packages divers
import favicon from 'serve-favicon';
// HTTP request logger
import morgan from 'morgan';
// packages pour pouvoir importer depuis des fichiers de config
import path from 'path';
import {ldapConfig, credentialsLdapConfig} from './ldap/config';
// config des paramètres de connexion au LDAP
import { ldapConfig, credentialsLdapConfig } from './ldap/config';
const { dn, passwd } = credentialsLdapConfig;
// "The app object conventionally denotes the Express application"
// see https://expressjs.com/en/4x/api.html#app
const app = express();
// Parse incoming HTTP request bodies, available under the req.body property. cf www.npmjs.com/package/body-parser
// app: denotes the Express application
const app = express();
// parse incoming HTTP request bodies, available under the req.body property
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 (quoi que ca veuille dire o.O)
extended: true //use qs library (see https://www.npmjs.com/package/body-parser#bodyparserurlencodedoptions)
}));
//parses Cookie header and populate req.cookies with an object keyed by the cookie names. was necessary for express-session before its v1.5.0. on peut probablement l'enlever desormais.
// parse Cookie header and populate req.cookies with an object keyed by the cookie names
app.use(cookieParser());
// cache le fait que l'application tourne sous Express dans le header HTTP.
// 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'));
app.use(favicon(path.resolve('./', 'assets', 'favicon.ico')));
// specifies path to static assets. ......je comprends pas ce que c'est. TODO
app.use('/assets', express.static(path.resolve('./', 'assets')));
/**
* @desc SETUP DE 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');
/**
* @desc AUTHENTIFICATION POUR LES REQUETES POSSEDANT UN COOKIE ET PROVENANT D'UN UTILISATEUR DEJA AUTHENTIFIE
......@@ -74,11 +74,6 @@ app.use('/assets', express.static(path.resolve('./', 'assets')));
* it is important to configure this right!!! please check out https://www.npmjs.com/package/express-session
* and make sure you understand the way session is stored. (en vrai c'est vraiment important...)
*/
app.use(session({
secret: ldapConfig.sessionSecret,
resave: true,
saveUninitialized: false,
}));
app.use(passport.initialize());
......@@ -97,14 +92,6 @@ app.use(passport.session(), (req, res, next)=>{
// connect-flash is middleware for flashing messages, used in adminview
app.use(flash());
/**
* @desc SETUP DE ADMINVIEW
*/
// setting up view engine for pug, for adminview
console.log("Running at", __dirname);
let viewpath = path.resolve(__dirname, 'views');
app.set('views', viewpath);
app.set('view engine', 'pug');
......
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