Skip to content

Instantly share code, notes, and snippets.

@fuzzylimes
Created May 31, 2018 23:59
Show Gist options
  • Save fuzzylimes/5508756a75c071fcf631bbf4c95a0ff8 to your computer and use it in GitHub Desktop.
Save fuzzylimes/5508756a75c071fcf631bbf4c95a0ff8 to your computer and use it in GitHub Desktop.
Trying to figure out express-sessions
{
"name": "requesttest",
"version": "1.0.0",
"description": "Testing out requests",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev:server": "nodemon --ignore sessions/ server.js"
},
"author": "fuzzylimes",
"license": "MIT",
"dependencies": {
"body-parser": "^1.18.3",
"express": "^4.16.3",
"express-session": "^1.15.6",
"request": "^2.86.0",
"session-file-store": "^1.2.0",
"uuid": "^3.2.1"
}
}
const express = require('express');
const uuid = require('uuid/v4');
const session = require('express-session');
const FileStore = require('session-file-store')(session);
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
app.use(session({
genid: (req) => {
console.log('Inside the session Midleware');
console.log(req.sessionID);
return uuid()
},
key: 'user_sid',
store: new FileStore(),
secret: 'krusty krab',
resave: true,
unset: 'destroy',
saveUninitialized: true,
cookie: {
maxAge: 60 * 1000
}
}));
// app.use((req, res, next) => {
// console.log(req.session.cookie.expires);
// console.log(new Date().toISOString());
// console.log()
// if(req.session.cookie.expires < new Date().toISOString()){
// console.log("I'm here");
// res.clearCookie('user_sid');
// req.session.destroy((err) => {
// console.log(err);
// });
// }
// next();
// });
app.get('/', (req, res) => {
console.log('Inside the homepage callback function');
console.log(req.sessionID)
console.log(req.session.state);
res.send(`Hit the home page.\n`);
})
app.get('/login', (req, res) => {
console.log('Inside GET /login callback function');
console.log(req.sessionID);
res.send('You got the login page\n');
});
app.post('/login', (req, res) => {
console.log('Inside POST /login callback function');
console.log(req.body);
req.session.state = true;
console.log(req.session.state);
res.send('You posted to the login page\n');
})
app.get('/restricted', (req, res) => {
if(req.session.state){
res.send('You reach the restricted page\n');
} else {
res.redirect('/login');
}
})
app.listen(5555, () => {
console.log('Listening on port 5555');
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment