forked from external-repos/noisedash
Debug sessions
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -108,3 +108,6 @@ certs/*
|
||||
|
||||
# SQLite DB
|
||||
db.sqlite3
|
||||
|
||||
# Sessions file store
|
||||
sessions/*
|
||||
|
||||
16074
package-lock.json
generated
16074
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -18,6 +18,7 @@
|
||||
"express-session": "^1.17.2",
|
||||
"passport": "^0.4.1",
|
||||
"passport-local": "^1.0.0",
|
||||
"session-file-store": "^1.5.0",
|
||||
"sqlite3": "^5.0.2",
|
||||
"tone": "^14.7.77",
|
||||
"vue": "^2.6.11",
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
const express = require('express')
|
||||
const session = require('express-session')
|
||||
const FileStore = require('session-file-store')(session);
|
||||
const cors = require('cors')
|
||||
const passport = require('passport')
|
||||
const path = require('path')
|
||||
@@ -12,14 +13,24 @@ const usersRouter = require('./routes/users')
|
||||
|
||||
const app = express()
|
||||
|
||||
const corsOptions = {
|
||||
origin: 'http://localhost:8080',
|
||||
credentials: true
|
||||
}
|
||||
|
||||
app.use(cors(corsOptions))
|
||||
|
||||
const fileStoreOptions = {
|
||||
path: './sessions'
|
||||
};
|
||||
|
||||
require('./boot/db')()
|
||||
require('./boot/auth')()
|
||||
|
||||
app.use(express.json())
|
||||
app.use(express.urlencoded({ extended: false }))
|
||||
app.use(cookieParser())
|
||||
app.use(express.static(path.join(__dirname, 'public')))
|
||||
app.use(session({ secret: 'cats', resave: false, saveUninitialized: false }))
|
||||
app.use(session({ store: new FileStore(fileStoreOptions), secret: 'cats', resave: true, saveUninitialized: true }))
|
||||
app.use(function (req, res, next) {
|
||||
const msgs = req.session.messages || []
|
||||
res.locals.messages = msgs
|
||||
@@ -27,10 +38,9 @@ app.use(function (req, res, next) {
|
||||
req.session.messages = []
|
||||
next()
|
||||
})
|
||||
app.use(express.json())
|
||||
app.use(passport.initialize())
|
||||
app.use(passport.authenticate('session'))
|
||||
app.use(cors())
|
||||
//app.use(passport.session());
|
||||
|
||||
// Define routes
|
||||
app.use('/', indexRouter)
|
||||
|
||||
@@ -39,12 +39,14 @@ module.exports = function () {
|
||||
// serializing, and querying the user record by ID from the database when
|
||||
// deserializing.
|
||||
passport.serializeUser(function (user, cb) {
|
||||
console.log('serializing user: ');
|
||||
process.nextTick(function () {
|
||||
cb(null, { id: user.id, username: user.username })
|
||||
})
|
||||
})
|
||||
|
||||
passport.deserializeUser(function (user, cb) {
|
||||
console.log("DESERIALIZE")
|
||||
process.nextTick(function () {
|
||||
return cb(null, user)
|
||||
})
|
||||
|
||||
@@ -4,10 +4,24 @@ const passport = require('passport')
|
||||
const router = express.Router()
|
||||
|
||||
router.post('/login/password', passport.authenticate('local'), function (req, res, next) {
|
||||
console.log('login cookies: ', req.cookies)
|
||||
console.log('login is authenticated: ', req.isAuthenticated())
|
||||
console.log('/login/password req.user: ', req.user)
|
||||
console.log('login session: ', req.session)
|
||||
//res.json(req.user)
|
||||
return res.send('You were authenticated & logged in!\n');
|
||||
})
|
||||
|
||||
router.get('/auth', function (req, res) {
|
||||
console.log('auth cookies: ', req.cookies)
|
||||
console.log('in /auth')
|
||||
console.log('auth is authenticated: ', req.isAuthenticated())
|
||||
console.log('/auth req.user: ', req.user)
|
||||
console.log('auth session: ', req.session)
|
||||
if (req.user) {
|
||||
res.json(req.user)
|
||||
res.status(200).end()
|
||||
} else {
|
||||
res.statusCode = 403
|
||||
res.status(401).end()
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
import Vue from 'vue'
|
||||
import Axios from 'axios'
|
||||
import VueRouter from 'vue-router'
|
||||
import Home from '../views/Home.vue'
|
||||
|
||||
const instance = Axios.create({
|
||||
baseURL: 'https://localhost:3000',
|
||||
withCredentials: true
|
||||
})
|
||||
|
||||
Vue.use(VueRouter)
|
||||
|
||||
const routes = [
|
||||
@@ -34,4 +40,23 @@ const router = new VueRouter({
|
||||
routes
|
||||
})
|
||||
|
||||
router.beforeEach((to, from, next) => {
|
||||
if (to.name === 'Home') {
|
||||
instance.get('/auth')
|
||||
.then(response => {
|
||||
if (response.status === 200) {
|
||||
next()
|
||||
} else {
|
||||
next('/login')
|
||||
}
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.error(error.response)
|
||||
next('/login')
|
||||
})
|
||||
} else {
|
||||
next()
|
||||
}
|
||||
})
|
||||
|
||||
export default router
|
||||
|
||||
Reference in New Issue
Block a user