forked from external-repos/noisedash
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": {
|
||||
"axios": "^0.21.1",
|
||||
"body-parser": "^1.19.0",
|
||||
"connect-ensure-login": "^0.1.1",
|
||||
"cookie-parser": "^1.4.5",
|
||||
"core-js": "^3.6.5",
|
||||
|
||||
@@ -1,44 +1,41 @@
|
||||
const express = require('express');
|
||||
const express = require('express')
|
||||
const session = require('express-session')
|
||||
const cors = require('cors')
|
||||
const passport = require('passport');
|
||||
const path = require('path');
|
||||
const cookieParser = require('cookie-parser');
|
||||
const ensureLoggedIn = require('connect-ensure-login').ensureLoggedIn;
|
||||
const bodyParser = require("body-parser")
|
||||
const passport = require('passport')
|
||||
const path = require('path')
|
||||
const cookieParser = require('cookie-parser')
|
||||
|
||||
const indexRouter = require('./routes/index');
|
||||
const authRouter = require('./routes/auth');
|
||||
const myaccountRouter = require('./routes/myaccount');
|
||||
const usersRouter = require('./routes/users');
|
||||
const db = require('./db');
|
||||
const indexRouter = require('./routes/index')
|
||||
const authRouter = require('./routes/auth')
|
||||
const myaccountRouter = require('./routes/myaccount')
|
||||
const usersRouter = require('./routes/users')
|
||||
|
||||
const app = express();
|
||||
const app = express()
|
||||
|
||||
require('./boot/db')();
|
||||
require('./boot/auth')();
|
||||
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(function(req, res, next) {
|
||||
const msgs = req.session.messages || [];
|
||||
res.locals.messages = msgs;
|
||||
res.locals.hasMessages = !! msgs.length;
|
||||
req.session.messages = [];
|
||||
next();
|
||||
});
|
||||
app.use(bodyParser.json());
|
||||
app.use(passport.initialize());
|
||||
app.use(passport.authenticate('session'));
|
||||
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(function (req, res, next) {
|
||||
const msgs = req.session.messages || []
|
||||
res.locals.messages = msgs
|
||||
res.locals.hasMessages = !!msgs.length
|
||||
req.session.messages = []
|
||||
next()
|
||||
})
|
||||
app.use(express.json())
|
||||
app.use(passport.initialize())
|
||||
app.use(passport.authenticate('session'))
|
||||
app.use(cors())
|
||||
|
||||
// Define routes
|
||||
app.use('/', indexRouter);
|
||||
app.use('/', authRouter);
|
||||
app.use('/myaccount', myaccountRouter);
|
||||
app.use('/users', usersRouter);
|
||||
app.use('/', indexRouter)
|
||||
app.use('/', authRouter)
|
||||
app.use('/myaccount', myaccountRouter)
|
||||
app.use('/users', usersRouter)
|
||||
|
||||
module.exports = app;
|
||||
module.exports = app
|
||||
|
||||
@@ -3,17 +3,16 @@
|
||||
/**
|
||||
* Module dependencies.
|
||||
*/
|
||||
const app = require('../app');
|
||||
const debug = require('debug')('example:server');
|
||||
const http = require('http');
|
||||
const app = require('../app')
|
||||
const debug = require('debug')('example:server')
|
||||
const https = require('https')
|
||||
const fs = require('fs')
|
||||
|
||||
/**
|
||||
* Get port from environment and store in Express.
|
||||
*/
|
||||
const port = normalizePort(process.env.PORT || '3000');
|
||||
app.set('port', port);
|
||||
const port = normalizePort(process.env.PORT || '3000')
|
||||
app.set('port', port)
|
||||
|
||||
/**
|
||||
* HTTPS options.
|
||||
@@ -26,68 +25,66 @@ const httpsOptions = {
|
||||
/**
|
||||
* Create HTTP server.
|
||||
*/
|
||||
const server = https.createServer(httpsOptions, app);
|
||||
const server = https.createServer(httpsOptions, app)
|
||||
|
||||
/**
|
||||
* Listen on provided port, on all network interfaces.
|
||||
*/
|
||||
server.listen(port);
|
||||
server.on('error', onError);
|
||||
server.on('listening', onListening);
|
||||
server.listen(port)
|
||||
server.on('error', onError)
|
||||
server.on('listening', onListening)
|
||||
|
||||
/**
|
||||
* Normalize a port into a number, string, or false.
|
||||
*/
|
||||
function normalizePort(val) {
|
||||
const port = parseInt(val, 10);
|
||||
function normalizePort (val) {
|
||||
const port = parseInt(val, 10)
|
||||
|
||||
if (isNaN(port)) {
|
||||
// named pipe
|
||||
return val;
|
||||
return val
|
||||
}
|
||||
|
||||
if (port >= 0) {
|
||||
// port number
|
||||
return port;
|
||||
return port
|
||||
}
|
||||
|
||||
return false;
|
||||
return false
|
||||
}
|
||||
|
||||
/**
|
||||
* Event listener for HTTP server "error" event.
|
||||
*/
|
||||
function onError(error) {
|
||||
function onError (error) {
|
||||
if (error.syscall !== 'listen') {
|
||||
throw error;
|
||||
throw error
|
||||
}
|
||||
|
||||
const bind = typeof port === 'string'
|
||||
? 'Pipe ' + port
|
||||
: 'Port ' + port;
|
||||
: 'Port ' + port
|
||||
|
||||
// handle specific listen errors with friendly messages
|
||||
switch (error.code) {
|
||||
case 'EACCES':
|
||||
console.error(bind + ' requires elevated privileges');
|
||||
process.exit(1);
|
||||
break;
|
||||
console.error(bind + ' requires elevated privileges')
|
||||
process.exit(1)
|
||||
case 'EADDRINUSE':
|
||||
console.error(bind + ' is already in use');
|
||||
process.exit(1);
|
||||
break;
|
||||
console.error(bind + ' is already in use')
|
||||
process.exit(1)
|
||||
default:
|
||||
throw error;
|
||||
throw error
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Event listener for HTTP server "listening" event.
|
||||
*/
|
||||
function onListening() {
|
||||
const addr = server.address();
|
||||
function onListening () {
|
||||
const addr = server.address()
|
||||
const bind = typeof addr === 'string'
|
||||
? 'pipe ' + addr
|
||||
: 'port ' + addr.port;
|
||||
debug('Listening on ' + bind);
|
||||
: 'port ' + addr.port
|
||||
debug('Listening on ' + bind)
|
||||
}
|
||||
|
||||
@@ -1,37 +1,35 @@
|
||||
const passport = require('passport');
|
||||
const Strategy = require('passport-local');
|
||||
const crypto = require('crypto');
|
||||
const db = require('../db');
|
||||
|
||||
module.exports = function() {
|
||||
const passport = require('passport')
|
||||
const Strategy = require('passport-local')
|
||||
const crypto = require('crypto')
|
||||
const db = require('../db')
|
||||
|
||||
module.exports = function () {
|
||||
// Configure the local strategy for use by Passport.
|
||||
//
|
||||
// The local strategy requires a `verify` function which receives the credentials
|
||||
// (`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
|
||||
// will be set at `req.user` in route handlers after authentication.
|
||||
passport.use(new Strategy(function(username, password, cb) {
|
||||
db.get('SELECT rowid AS id, * FROM users WHERE username = ?', [ username ], function(err, row) {
|
||||
if (err) { return cb(err); }
|
||||
if (!row) { return cb(null, false, { message: 'Incorrect username or password.' }); }
|
||||
passport.use(new Strategy(function (username, password, cb) {
|
||||
db.get('SELECT rowid AS id, * FROM users WHERE username = ?', [username], function (err, row) {
|
||||
if (err) { return cb(err) }
|
||||
if (!row) { return cb(null, false, { message: 'Incorrect username or password.' }) }
|
||||
|
||||
crypto.pbkdf2(password, row.salt, 10000, 32, 'sha256', function(err, hashedPassword) {
|
||||
if (err) { return cb(err); }
|
||||
crypto.pbkdf2(password, row.salt, 10000, 32, 'sha256', function (err, hashedPassword) {
|
||||
if (err) { return cb(err) }
|
||||
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 = {
|
||||
id: row.id.toString(),
|
||||
username: row.username,
|
||||
displayName: row.name
|
||||
};
|
||||
return cb(null, user);
|
||||
});
|
||||
});
|
||||
}));
|
||||
|
||||
}
|
||||
return cb(null, user)
|
||||
})
|
||||
})
|
||||
}))
|
||||
|
||||
// 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
|
||||
// serializing, and querying the user record by ID from the database when
|
||||
// deserializing.
|
||||
passport.serializeUser(function(user, cb) {
|
||||
process.nextTick(function() {
|
||||
cb(null, { id: user.id, username: user.username });
|
||||
});
|
||||
});
|
||||
passport.serializeUser(function (user, cb) {
|
||||
process.nextTick(function () {
|
||||
cb(null, { id: user.id, username: user.username })
|
||||
})
|
||||
})
|
||||
|
||||
passport.deserializeUser(function(user, cb) {
|
||||
process.nextTick(function() {
|
||||
return cb(null, user);
|
||||
});
|
||||
});
|
||||
|
||||
};
|
||||
passport.deserializeUser(function (user, cb) {
|
||||
process.nextTick(function () {
|
||||
return cb(null, user)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1,15 +1,7 @@
|
||||
const db = require('../db');
|
||||
const db = require('../db')
|
||||
|
||||
module.exports = function() {
|
||||
|
||||
db.serialize(function() {
|
||||
db.run("CREATE TABLE IF NOT EXISTS users ( \
|
||||
username TEXT UNIQUE, \
|
||||
hashed_password BLOB, \
|
||||
salt BLOB, \
|
||||
name TEXT \
|
||||
)");
|
||||
});
|
||||
|
||||
//db.close();
|
||||
};
|
||||
module.exports = function () {
|
||||
db.serialize(function () {
|
||||
db.run('CREATE TABLE IF NOT EXISTS users ( username TEXT UNIQUE, hashed_password BLOB, salt BLOB, name TEXT)')
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
const express = require('express');
|
||||
const passport = require('passport');
|
||||
const express = require('express')
|
||||
const passport = require('passport')
|
||||
|
||||
const router = express.Router();
|
||||
const router = express.Router()
|
||||
|
||||
router.post('/login/password', passport.authenticate('local'), function(req, res, next) {
|
||||
if(req.user) {
|
||||
res.json(req.user);
|
||||
router.post('/login/password', passport.authenticate('local'), function (req, res, next) {
|
||||
if (req.user) {
|
||||
res.json(req.user)
|
||||
} else {
|
||||
res.statusCode = 403;
|
||||
res.statusCode = 403
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
router.get('/logout', function(req, res, next) {
|
||||
req.logout();
|
||||
});
|
||||
router.get('/logout', function (req, res, next) {
|
||||
req.logout()
|
||||
})
|
||||
|
||||
module.exports = router;
|
||||
module.exports = router
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const express = require('express')
|
||||
const router = express.Router()
|
||||
|
||||
router.get('/', function(req, res, next) {
|
||||
res.json({ user: req.user });
|
||||
});
|
||||
router.get('/', function (req, res, next) {
|
||||
res.json({ user: req.user })
|
||||
})
|
||||
|
||||
module.exports = router;
|
||||
module.exports = router
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
const express = require('express');
|
||||
const ensureLoggedIn = require('connect-ensure-login').ensureLoggedIn;
|
||||
const db = require('../db');
|
||||
const express = require('express')
|
||||
const ensureLoggedIn = require('connect-ensure-login').ensureLoggedIn
|
||||
const db = require('../db')
|
||||
|
||||
const router = express.Router();
|
||||
const router = express.Router()
|
||||
|
||||
/* GET users listing. */
|
||||
router.get('/',
|
||||
ensureLoggedIn(),
|
||||
function(req, res, next) {
|
||||
db.get('SELECT rowid AS id, username, name FROM users WHERE rowid = ?', [ req.user.id ], function(err, row) {
|
||||
if (err) { return next(err); }
|
||||
function (req, res, next) {
|
||||
db.get('SELECT rowid AS id, username, name FROM users WHERE rowid = ?', [req.user.id], function (err, row) {
|
||||
if (err) { return next(err) }
|
||||
|
||||
const user = {
|
||||
id: row.id.toString(),
|
||||
username: row.username,
|
||||
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 crypto = require('crypto');
|
||||
const db = require('../db');
|
||||
const express = require('express')
|
||||
const crypto = require('crypto')
|
||||
const db = require('../db')
|
||||
|
||||
const router = express.Router();
|
||||
const router = express.Router()
|
||||
|
||||
router.post('/', function(req, res, next) {
|
||||
console.log("REQ: ", req.body)
|
||||
const salt = crypto.randomBytes(16);
|
||||
crypto.pbkdf2(req.body.password, salt, 10000, 32, 'sha256', function(err, hashedPassword) {
|
||||
if (err) { return next(err); }
|
||||
router.post('/', function (req, res, next) {
|
||||
console.log('REQ: ', req.body)
|
||||
const salt = crypto.randomBytes(16)
|
||||
crypto.pbkdf2(req.body.password, salt, 10000, 32, 'sha256', function (err, hashedPassword) {
|
||||
if (err) { return next(err) }
|
||||
|
||||
db.run('INSERT INTO users (username, hashed_password, salt, name) VALUES (?, ?, ?, ?)', [
|
||||
req.body.username,
|
||||
hashedPassword,
|
||||
salt,
|
||||
req.body.name
|
||||
], function(err) {
|
||||
if (err) { return next(err); }
|
||||
], function (err) {
|
||||
if (err) { return next(err) }
|
||||
|
||||
const user = {
|
||||
id: this.lastID.toString(),
|
||||
username: req.body.username,
|
||||
displayName: req.body.name
|
||||
};
|
||||
req.login(user, function(err) {
|
||||
if (err) { return next(err); }
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
req.login(user, function (err) {
|
||||
if (err) { return next(err) }
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
module.exports = router;
|
||||
module.exports = router
|
||||
|
||||
Reference in New Issue
Block a user