Created
May 31, 2018 23:59
-
-
Save fuzzylimes/5508756a75c071fcf631bbf4c95a0ff8 to your computer and use it in GitHub Desktop.
Trying to figure out express-sessions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"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" | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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