formations/cesi/architecture_n_tiers/ressources/exercices/ex_microbloggr_solution/services/home_page/src/server.js

38 lines
1.1 KiB
JavaScript

const express = require('express');
const session = require('express-session');
var RedisStore = require('connect-redis')(session);
const app = express();
const morgan = require('morgan');
app.set('view engine', 'ejs');
app.set('views', __dirname + '/views');
app.use(morgan('combined'));
app.use(session({
store: new RedisStore({host: 'redis'}),
secret: process.env.SESSION_SECRET, // Ce secret doit être partagé par tous les microservices *_page
cookie: { maxAge: 60000 },
resave: false,
saveUninitialized: true,
}));
// GET /
// Retourne la page d'accueil de MicroBloggr ou redirige vers la
// page de login si l'utilisateur n'est pas identifié
app.get('/', (req, res) => {
const sess = req.session;
// On vérifie si un utilisateur a été associé à la session HTTP
if (req.session.user) {
// Si oui, on affichage la page d'accueil
return res.render('index', { user: req.session.user });
} else {
// Si non, on redirige l'utilisateur vers la page de login
return res.redirect(302, '/login');
}
});
app.listen(8080, () => console.log('listening on port 8080'));