mirror of
https://github.com/kaythomas0/noisedash.git
synced 2025-11-12 11:26:20 +00:00
Lint server, remove body-parser
This commit is contained in:
17091
package-lock.json
generated
17091
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -10,7 +10,6 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^0.21.1",
|
"axios": "^0.21.1",
|
||||||
"body-parser": "^1.19.0",
|
|
||||||
"connect-ensure-login": "^0.1.1",
|
"connect-ensure-login": "^0.1.1",
|
||||||
"cookie-parser": "^1.4.5",
|
"cookie-parser": "^1.4.5",
|
||||||
"core-js": "^3.6.5",
|
"core-js": "^3.6.5",
|
||||||
|
|||||||
@@ -1,44 +1,41 @@
|
|||||||
const express = require('express');
|
const express = require('express')
|
||||||
const session = require('express-session')
|
const session = require('express-session')
|
||||||
const cors = require('cors')
|
const cors = require('cors')
|
||||||
const passport = require('passport');
|
const passport = require('passport')
|
||||||
const path = require('path');
|
const path = require('path')
|
||||||
const cookieParser = require('cookie-parser');
|
const cookieParser = require('cookie-parser')
|
||||||
const ensureLoggedIn = require('connect-ensure-login').ensureLoggedIn;
|
|
||||||
const bodyParser = require("body-parser")
|
|
||||||
|
|
||||||
const indexRouter = require('./routes/index');
|
const indexRouter = require('./routes/index')
|
||||||
const authRouter = require('./routes/auth');
|
const authRouter = require('./routes/auth')
|
||||||
const myaccountRouter = require('./routes/myaccount');
|
const myaccountRouter = require('./routes/myaccount')
|
||||||
const usersRouter = require('./routes/users');
|
const usersRouter = require('./routes/users')
|
||||||
const db = require('./db');
|
|
||||||
|
|
||||||
const app = express();
|
const app = express()
|
||||||
|
|
||||||
require('./boot/db')();
|
require('./boot/db')()
|
||||||
require('./boot/auth')();
|
require('./boot/auth')()
|
||||||
|
|
||||||
app.use(express.json());
|
app.use(express.json())
|
||||||
app.use(express.urlencoded({ extended: false }));
|
app.use(express.urlencoded({ extended: false }))
|
||||||
app.use(cookieParser());
|
app.use(cookieParser())
|
||||||
app.use(express.static(path.join(__dirname, 'public')));
|
app.use(express.static(path.join(__dirname, 'public')))
|
||||||
app.use(session({ secret: "cats", resave: false, saveUninitialized: false }));
|
app.use(session({ secret: 'cats', resave: false, saveUninitialized: false }))
|
||||||
app.use(function(req, res, next) {
|
app.use(function (req, res, next) {
|
||||||
const msgs = req.session.messages || [];
|
const msgs = req.session.messages || []
|
||||||
res.locals.messages = msgs;
|
res.locals.messages = msgs
|
||||||
res.locals.hasMessages = !! msgs.length;
|
res.locals.hasMessages = !!msgs.length
|
||||||
req.session.messages = [];
|
req.session.messages = []
|
||||||
next();
|
next()
|
||||||
});
|
})
|
||||||
app.use(bodyParser.json());
|
app.use(express.json())
|
||||||
app.use(passport.initialize());
|
app.use(passport.initialize())
|
||||||
app.use(passport.authenticate('session'));
|
app.use(passport.authenticate('session'))
|
||||||
app.use(cors())
|
app.use(cors())
|
||||||
|
|
||||||
// Define routes
|
// Define routes
|
||||||
app.use('/', indexRouter);
|
app.use('/', indexRouter)
|
||||||
app.use('/', authRouter);
|
app.use('/', authRouter)
|
||||||
app.use('/myaccount', myaccountRouter);
|
app.use('/myaccount', myaccountRouter)
|
||||||
app.use('/users', usersRouter);
|
app.use('/users', usersRouter)
|
||||||
|
|
||||||
module.exports = app;
|
module.exports = app
|
||||||
|
|||||||
@@ -3,17 +3,16 @@
|
|||||||
/**
|
/**
|
||||||
* Module dependencies.
|
* Module dependencies.
|
||||||
*/
|
*/
|
||||||
const app = require('../app');
|
const app = require('../app')
|
||||||
const debug = require('debug')('example:server');
|
const debug = require('debug')('example:server')
|
||||||
const http = require('http');
|
|
||||||
const https = require('https')
|
const https = require('https')
|
||||||
const fs = require('fs')
|
const fs = require('fs')
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get port from environment and store in Express.
|
* Get port from environment and store in Express.
|
||||||
*/
|
*/
|
||||||
const port = normalizePort(process.env.PORT || '3000');
|
const port = normalizePort(process.env.PORT || '3000')
|
||||||
app.set('port', port);
|
app.set('port', port)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* HTTPS options.
|
* HTTPS options.
|
||||||
@@ -26,68 +25,66 @@ const httpsOptions = {
|
|||||||
/**
|
/**
|
||||||
* Create HTTP server.
|
* Create HTTP server.
|
||||||
*/
|
*/
|
||||||
const server = https.createServer(httpsOptions, app);
|
const server = https.createServer(httpsOptions, app)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Listen on provided port, on all network interfaces.
|
* Listen on provided port, on all network interfaces.
|
||||||
*/
|
*/
|
||||||
server.listen(port);
|
server.listen(port)
|
||||||
server.on('error', onError);
|
server.on('error', onError)
|
||||||
server.on('listening', onListening);
|
server.on('listening', onListening)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Normalize a port into a number, string, or false.
|
* Normalize a port into a number, string, or false.
|
||||||
*/
|
*/
|
||||||
function normalizePort(val) {
|
function normalizePort (val) {
|
||||||
const port = parseInt(val, 10);
|
const port = parseInt(val, 10)
|
||||||
|
|
||||||
if (isNaN(port)) {
|
if (isNaN(port)) {
|
||||||
// named pipe
|
// named pipe
|
||||||
return val;
|
return val
|
||||||
}
|
}
|
||||||
|
|
||||||
if (port >= 0) {
|
if (port >= 0) {
|
||||||
// port number
|
// port number
|
||||||
return port;
|
return port
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Event listener for HTTP server "error" event.
|
* Event listener for HTTP server "error" event.
|
||||||
*/
|
*/
|
||||||
function onError(error) {
|
function onError (error) {
|
||||||
if (error.syscall !== 'listen') {
|
if (error.syscall !== 'listen') {
|
||||||
throw error;
|
throw error
|
||||||
}
|
}
|
||||||
|
|
||||||
const bind = typeof port === 'string'
|
const bind = typeof port === 'string'
|
||||||
? 'Pipe ' + port
|
? 'Pipe ' + port
|
||||||
: 'Port ' + port;
|
: 'Port ' + port
|
||||||
|
|
||||||
// handle specific listen errors with friendly messages
|
// handle specific listen errors with friendly messages
|
||||||
switch (error.code) {
|
switch (error.code) {
|
||||||
case 'EACCES':
|
case 'EACCES':
|
||||||
console.error(bind + ' requires elevated privileges');
|
console.error(bind + ' requires elevated privileges')
|
||||||
process.exit(1);
|
process.exit(1)
|
||||||
break;
|
|
||||||
case 'EADDRINUSE':
|
case 'EADDRINUSE':
|
||||||
console.error(bind + ' is already in use');
|
console.error(bind + ' is already in use')
|
||||||
process.exit(1);
|
process.exit(1)
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
throw error;
|
throw error
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Event listener for HTTP server "listening" event.
|
* Event listener for HTTP server "listening" event.
|
||||||
*/
|
*/
|
||||||
function onListening() {
|
function onListening () {
|
||||||
const addr = server.address();
|
const addr = server.address()
|
||||||
const bind = typeof addr === 'string'
|
const bind = typeof addr === 'string'
|
||||||
? 'pipe ' + addr
|
? 'pipe ' + addr
|
||||||
: 'port ' + addr.port;
|
: 'port ' + addr.port
|
||||||
debug('Listening on ' + bind);
|
debug('Listening on ' + bind)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,37 +1,35 @@
|
|||||||
const passport = require('passport');
|
const passport = require('passport')
|
||||||
const Strategy = require('passport-local');
|
const Strategy = require('passport-local')
|
||||||
const crypto = require('crypto');
|
const crypto = require('crypto')
|
||||||
const db = require('../db');
|
const db = require('../db')
|
||||||
|
|
||||||
module.exports = function() {
|
|
||||||
|
|
||||||
|
module.exports = function () {
|
||||||
// Configure the local strategy for use by Passport.
|
// Configure the local strategy for use by Passport.
|
||||||
//
|
//
|
||||||
// The local strategy requires a `verify` function which receives the credentials
|
// The local strategy requires a `verify` function which receives the credentials
|
||||||
// (`username` and `password`) submitted by the user. The function must verify
|
// (`username` and `password`) submitted by the user. The function must verify
|
||||||
// that the password is correct and then invoke `cb` with a user object, which
|
// that the password is correct and then invoke `cb` with a user object, which
|
||||||
// will be set at `req.user` in route handlers after authentication.
|
// will be set at `req.user` in route handlers after authentication.
|
||||||
passport.use(new Strategy(function(username, password, cb) {
|
passport.use(new Strategy(function (username, password, cb) {
|
||||||
db.get('SELECT rowid AS id, * FROM users WHERE username = ?', [ username ], function(err, row) {
|
db.get('SELECT rowid AS id, * FROM users WHERE username = ?', [username], function (err, row) {
|
||||||
if (err) { return cb(err); }
|
if (err) { return cb(err) }
|
||||||
if (!row) { return cb(null, false, { message: 'Incorrect username or password.' }); }
|
if (!row) { return cb(null, false, { message: 'Incorrect username or password.' }) }
|
||||||
|
|
||||||
crypto.pbkdf2(password, row.salt, 10000, 32, 'sha256', function(err, hashedPassword) {
|
crypto.pbkdf2(password, row.salt, 10000, 32, 'sha256', function (err, hashedPassword) {
|
||||||
if (err) { return cb(err); }
|
if (err) { return cb(err) }
|
||||||
if (!crypto.timingSafeEqual(row.hashed_password, hashedPassword)) {
|
if (!crypto.timingSafeEqual(row.hashed_password, hashedPassword)) {
|
||||||
return cb(null, false, { message: 'Incorrect username or password.' });
|
return cb(null, false, { message: 'Incorrect username or password.' })
|
||||||
}
|
}
|
||||||
|
|
||||||
const user = {
|
const user = {
|
||||||
id: row.id.toString(),
|
id: row.id.toString(),
|
||||||
username: row.username,
|
username: row.username,
|
||||||
displayName: row.name
|
displayName: row.name
|
||||||
};
|
}
|
||||||
return cb(null, user);
|
return cb(null, user)
|
||||||
});
|
})
|
||||||
});
|
})
|
||||||
}));
|
}))
|
||||||
|
|
||||||
|
|
||||||
// Configure Passport authenticated session persistence.
|
// Configure Passport authenticated session persistence.
|
||||||
//
|
//
|
||||||
@@ -40,16 +38,15 @@ module.exports = function() {
|
|||||||
// typical implementation of this is as simple as supplying the user ID when
|
// typical implementation of this is as simple as supplying the user ID when
|
||||||
// serializing, and querying the user record by ID from the database when
|
// serializing, and querying the user record by ID from the database when
|
||||||
// deserializing.
|
// deserializing.
|
||||||
passport.serializeUser(function(user, cb) {
|
passport.serializeUser(function (user, cb) {
|
||||||
process.nextTick(function() {
|
process.nextTick(function () {
|
||||||
cb(null, { id: user.id, username: user.username });
|
cb(null, { id: user.id, username: user.username })
|
||||||
});
|
})
|
||||||
});
|
})
|
||||||
|
|
||||||
passport.deserializeUser(function(user, cb) {
|
passport.deserializeUser(function (user, cb) {
|
||||||
process.nextTick(function() {
|
process.nextTick(function () {
|
||||||
return cb(null, user);
|
return cb(null, user)
|
||||||
});
|
})
|
||||||
});
|
})
|
||||||
|
}
|
||||||
};
|
|
||||||
|
|||||||
@@ -1,15 +1,7 @@
|
|||||||
const db = require('../db');
|
const db = require('../db')
|
||||||
|
|
||||||
module.exports = function() {
|
module.exports = function () {
|
||||||
|
db.serialize(function () {
|
||||||
db.serialize(function() {
|
db.run('CREATE TABLE IF NOT EXISTS users ( username TEXT UNIQUE, hashed_password BLOB, salt BLOB, name TEXT)')
|
||||||
db.run("CREATE TABLE IF NOT EXISTS users ( \
|
})
|
||||||
username TEXT UNIQUE, \
|
}
|
||||||
hashed_password BLOB, \
|
|
||||||
salt BLOB, \
|
|
||||||
name TEXT \
|
|
||||||
)");
|
|
||||||
});
|
|
||||||
|
|
||||||
//db.close();
|
|
||||||
};
|
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
const express = require('express');
|
const express = require('express')
|
||||||
const passport = require('passport');
|
const passport = require('passport')
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router()
|
||||||
|
|
||||||
router.post('/login/password', passport.authenticate('local'), function(req, res, next) {
|
router.post('/login/password', passport.authenticate('local'), function (req, res, next) {
|
||||||
if(req.user) {
|
if (req.user) {
|
||||||
res.json(req.user);
|
res.json(req.user)
|
||||||
} else {
|
} else {
|
||||||
res.statusCode = 403;
|
res.statusCode = 403
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
|
|
||||||
router.get('/logout', function(req, res, next) {
|
router.get('/logout', function (req, res, next) {
|
||||||
req.logout();
|
req.logout()
|
||||||
});
|
})
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
const express = require('express');
|
const express = require('express')
|
||||||
const router = express.Router();
|
const router = express.Router()
|
||||||
|
|
||||||
router.get('/', function(req, res, next) {
|
router.get('/', function (req, res, next) {
|
||||||
res.json({ user: req.user });
|
res.json({ user: req.user })
|
||||||
});
|
})
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router
|
||||||
|
|||||||
@@ -1,23 +1,23 @@
|
|||||||
const express = require('express');
|
const express = require('express')
|
||||||
const ensureLoggedIn = require('connect-ensure-login').ensureLoggedIn;
|
const ensureLoggedIn = require('connect-ensure-login').ensureLoggedIn
|
||||||
const db = require('../db');
|
const db = require('../db')
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router()
|
||||||
|
|
||||||
/* GET users listing. */
|
/* GET users listing. */
|
||||||
router.get('/',
|
router.get('/',
|
||||||
ensureLoggedIn(),
|
ensureLoggedIn(),
|
||||||
function(req, res, next) {
|
function (req, res, next) {
|
||||||
db.get('SELECT rowid AS id, username, name FROM users WHERE rowid = ?', [ req.user.id ], function(err, row) {
|
db.get('SELECT rowid AS id, username, name FROM users WHERE rowid = ?', [req.user.id], function (err, row) {
|
||||||
if (err) { return next(err); }
|
if (err) { return next(err) }
|
||||||
|
|
||||||
const user = {
|
const user = {
|
||||||
id: row.id.toString(),
|
id: row.id.toString(),
|
||||||
username: row.username,
|
username: row.username,
|
||||||
displayName: row.name
|
displayName: row.name
|
||||||
};
|
}
|
||||||
res.render('profile', { user: user });
|
res.render('profile', { user: user })
|
||||||
});
|
})
|
||||||
});
|
})
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router
|
||||||
|
|||||||
@@ -1,33 +1,33 @@
|
|||||||
const express = require('express');
|
const express = require('express')
|
||||||
const crypto = require('crypto');
|
const crypto = require('crypto')
|
||||||
const db = require('../db');
|
const db = require('../db')
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router()
|
||||||
|
|
||||||
router.post('/', function(req, res, next) {
|
router.post('/', function (req, res, next) {
|
||||||
console.log("REQ: ", req.body)
|
console.log('REQ: ', req.body)
|
||||||
const salt = crypto.randomBytes(16);
|
const salt = crypto.randomBytes(16)
|
||||||
crypto.pbkdf2(req.body.password, salt, 10000, 32, 'sha256', function(err, hashedPassword) {
|
crypto.pbkdf2(req.body.password, salt, 10000, 32, 'sha256', function (err, hashedPassword) {
|
||||||
if (err) { return next(err); }
|
if (err) { return next(err) }
|
||||||
|
|
||||||
db.run('INSERT INTO users (username, hashed_password, salt, name) VALUES (?, ?, ?, ?)', [
|
db.run('INSERT INTO users (username, hashed_password, salt, name) VALUES (?, ?, ?, ?)', [
|
||||||
req.body.username,
|
req.body.username,
|
||||||
hashedPassword,
|
hashedPassword,
|
||||||
salt,
|
salt,
|
||||||
req.body.name
|
req.body.name
|
||||||
], function(err) {
|
], function (err) {
|
||||||
if (err) { return next(err); }
|
if (err) { return next(err) }
|
||||||
|
|
||||||
const user = {
|
const user = {
|
||||||
id: this.lastID.toString(),
|
id: this.lastID.toString(),
|
||||||
username: req.body.username,
|
username: req.body.username,
|
||||||
displayName: req.body.name
|
displayName: req.body.name
|
||||||
};
|
}
|
||||||
req.login(user, function(err) {
|
req.login(user, function (err) {
|
||||||
if (err) { return next(err); }
|
if (err) { return next(err) }
|
||||||
});
|
})
|
||||||
});
|
})
|
||||||
});
|
})
|
||||||
});
|
})
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router
|
||||||
|
|||||||
Reference in New Issue
Block a user