mirror of
https://gitlab.com/MrFry/mrfrys-node-server
synced 2025-04-01 20:24:18 +02:00
Added sessions
This commit is contained in:
parent
cdcb1ccbbc
commit
c540544e15
3 changed files with 37 additions and 6 deletions
|
@ -22,6 +22,8 @@ const express = require('express')
|
||||||
const bodyParser = require('body-parser')
|
const bodyParser = require('body-parser')
|
||||||
const busboy = require('connect-busboy')
|
const busboy = require('connect-busboy')
|
||||||
const cookieParser = require('cookie-parser')
|
const cookieParser = require('cookie-parser')
|
||||||
|
const session = require('express-session')
|
||||||
|
const uuidv4 = require('uuid/v4') // TODO: deprecated, but imports are not supported
|
||||||
const fs = require('fs')
|
const fs = require('fs')
|
||||||
const app = express()
|
const app = express()
|
||||||
|
|
||||||
|
@ -59,6 +61,25 @@ function CreateDB () {
|
||||||
}
|
}
|
||||||
CreateDB()
|
CreateDB()
|
||||||
|
|
||||||
|
// TODO: https and testing
|
||||||
|
// var app = express()
|
||||||
|
// var sess = {
|
||||||
|
// secret: 'keyboard cat',
|
||||||
|
// cookie: {}
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if (app.get('env') === 'production') {
|
||||||
|
// app.set('trust proxy', 1) // trust first proxy
|
||||||
|
// sess.cookie.secure = true // serve secure cookies
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// app.use(session(sess))
|
||||||
|
|
||||||
|
app.use(session({
|
||||||
|
secret: uuidv4(),
|
||||||
|
resave: false,
|
||||||
|
saveUninitialized: true
|
||||||
|
}))
|
||||||
app.use(cookieParser())
|
app.use(cookieParser())
|
||||||
app.set('view engine', 'ejs')
|
app.set('view engine', 'ejs')
|
||||||
app.set('views', [
|
app.set('views', [
|
||||||
|
@ -113,18 +134,23 @@ Load()
|
||||||
|
|
||||||
// -------------------------------------------------------------
|
// -------------------------------------------------------------
|
||||||
|
|
||||||
app.get('/login', (req, res) => {
|
app.post('/login', (req, res) => {
|
||||||
logger.LogReq(req)
|
logger.LogReq(req)
|
||||||
// FIXME: redirect to original url
|
// FIXME: redirect to original url
|
||||||
|
const user = 'u'
|
||||||
|
// TODO: get user
|
||||||
// TODO: check if pw is correct
|
// TODO: check if pw is correct
|
||||||
res.cookie('pw', req.query.pw).redirect('/')
|
res.cookie('pw', req.query.pw).redirect('/')
|
||||||
// TODO: create session
|
req.session.user = user
|
||||||
})
|
})
|
||||||
|
|
||||||
app.get('/logout', (req, res) => {
|
app.post('/logout', (req, res) => {
|
||||||
logger.LogReq(req)
|
logger.LogReq(req)
|
||||||
// FIXME: redirect to original url
|
// FIXME: redirect to original url
|
||||||
// TODO: destroy session
|
const userID = req.session.user.id
|
||||||
|
req.session.destroy(function () {
|
||||||
|
logger.Log(`User ${userID} logout`)
|
||||||
|
})
|
||||||
res.clearCookie('pw').redirect('/')
|
res.clearCookie('pw').redirect('/')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
"primary": true,
|
"primary": true,
|
||||||
"notNull": true
|
"notNull": true
|
||||||
},
|
},
|
||||||
"userID": {
|
"id": {
|
||||||
"type": "number"
|
"type": "number"
|
||||||
},
|
},
|
||||||
"lastIP": {
|
"lastIP": {
|
||||||
|
@ -22,11 +22,14 @@
|
||||||
},
|
},
|
||||||
"acesses": {
|
"acesses": {
|
||||||
"tableStruct": {
|
"tableStruct": {
|
||||||
"userID": {
|
"accessId": {
|
||||||
"type": "number",
|
"type": "number",
|
||||||
"primary": true,
|
"primary": true,
|
||||||
"notNull": true
|
"notNull": true
|
||||||
},
|
},
|
||||||
|
"userId": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
"ip": {
|
"ip": {
|
||||||
"type": "text"
|
"type": "text"
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,9 @@
|
||||||
"ejs": "^1.0.0",
|
"ejs": "^1.0.0",
|
||||||
"express": "^4.6.1",
|
"express": "^4.6.1",
|
||||||
"express-ejs-layouts": "^1.1.0",
|
"express-ejs-layouts": "^1.1.0",
|
||||||
|
"express-session": "^1.17.0",
|
||||||
"sqlite3": "^4.1.1",
|
"sqlite3": "^4.1.1",
|
||||||
|
"uuid": "^7.0.3",
|
||||||
"vhost": "^3.0.2"
|
"vhost": "^3.0.2"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue