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:
		@@ -22,6 +22,8 @@ const express = require('express')
 | 
			
		||||
const bodyParser = require('body-parser')
 | 
			
		||||
const busboy = require('connect-busboy')
 | 
			
		||||
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 app = express()
 | 
			
		||||
 | 
			
		||||
@@ -59,6 +61,25 @@ function 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.set('view engine', 'ejs')
 | 
			
		||||
app.set('views', [
 | 
			
		||||
@@ -113,18 +134,23 @@ Load()
 | 
			
		||||
 | 
			
		||||
// -------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
app.get('/login', (req, res) => {
 | 
			
		||||
app.post('/login', (req, res) => {
 | 
			
		||||
  logger.LogReq(req)
 | 
			
		||||
  // FIXME: redirect to original url
 | 
			
		||||
  const user = 'u'
 | 
			
		||||
  // TODO: get user
 | 
			
		||||
  // TODO: check if pw is correct
 | 
			
		||||
  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)
 | 
			
		||||
  // 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('/')
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@
 | 
			
		||||
        "primary": true,
 | 
			
		||||
        "notNull": true
 | 
			
		||||
      },
 | 
			
		||||
      "userID": {
 | 
			
		||||
      "id": {
 | 
			
		||||
        "type": "number"
 | 
			
		||||
      },
 | 
			
		||||
      "lastIP": {
 | 
			
		||||
@@ -22,11 +22,14 @@
 | 
			
		||||
  },
 | 
			
		||||
  "acesses": {
 | 
			
		||||
    "tableStruct": {
 | 
			
		||||
      "userID": {
 | 
			
		||||
      "accessId": {
 | 
			
		||||
        "type": "number",
 | 
			
		||||
        "primary": true,
 | 
			
		||||
        "notNull": true
 | 
			
		||||
      },
 | 
			
		||||
      "userId": {
 | 
			
		||||
        "type": "number"
 | 
			
		||||
      },
 | 
			
		||||
      "ip": {
 | 
			
		||||
        "type": "text"
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,9 @@
 | 
			
		||||
    "ejs": "^1.0.0",
 | 
			
		||||
    "express": "^4.6.1",
 | 
			
		||||
    "express-ejs-layouts": "^1.1.0",
 | 
			
		||||
    "express-session": "^1.17.0",
 | 
			
		||||
    "sqlite3": "^4.1.1",
 | 
			
		||||
    "uuid": "^7.0.3",
 | 
			
		||||
    "vhost": "^3.0.2"
 | 
			
		||||
  },
 | 
			
		||||
  "scripts": {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user