experimental architecture changes, session support in progress
This commit is contained in:
27
loaders/express.js
Normal file
27
loaders/express.js
Normal file
@@ -0,0 +1,27 @@
|
||||
require('dotenv').config();
|
||||
const cors = require('cors');
|
||||
const session = require('express-session');
|
||||
const { json, urlencoded } = require('express');
|
||||
|
||||
module.exports = (app) => {
|
||||
app.use(cors());
|
||||
|
||||
app.use(json());
|
||||
|
||||
app.use(urlencoded({
|
||||
extended: true
|
||||
}));
|
||||
|
||||
app.use(require('../routes/API'));
|
||||
|
||||
app.use(session({
|
||||
secret: process.env.EXPRESS_SECRET,
|
||||
cookie: { maxAge: 8*60*60*1000, secure: false },
|
||||
resave: false,
|
||||
saveUninitialized: true,
|
||||
store: new (require('connect-pg-simple')(session))({
|
||||
conString: process.env.CONNECTION,
|
||||
createTableIfMissing: true,
|
||||
})
|
||||
}));
|
||||
}
|
||||
7
loaders/index.js
Normal file
7
loaders/index.js
Normal file
@@ -0,0 +1,7 @@
|
||||
const passportLoader = require('./passport');
|
||||
const expressLoader = require('./express');
|
||||
|
||||
module.exports = async (app) => {
|
||||
const passport = await passportLoader(app);
|
||||
const express = await expressLoader(app);
|
||||
}
|
||||
26
loaders/passport.js
Normal file
26
loaders/passport.js
Normal file
@@ -0,0 +1,26 @@
|
||||
const passport = require('passport');
|
||||
const LocalStrategy = require('passport-local');
|
||||
const client = require('../db/Client');
|
||||
|
||||
module.exports = (app) => {
|
||||
app.use(passport.initialize());
|
||||
app.use(passport.session());
|
||||
|
||||
passport.serializeUser((user, done) => {
|
||||
done(null, user.id);
|
||||
});
|
||||
|
||||
passport.deserializeUser((id, done) => {
|
||||
done(null, { id });
|
||||
});
|
||||
|
||||
/***
|
||||
** TO DO: FINISH CONFIGURING LOCAL STRATEGY
|
||||
|
||||
app.use(new LocalStrategy(async (email, password, done) => {
|
||||
const newClient = client();
|
||||
const account = await newClient.query("SELECT * FROM users WHERE email = ($1)", [email])
|
||||
}));
|
||||
|
||||
***/
|
||||
}
|
||||
11
loaders/swagger.js
Normal file
11
loaders/swagger.js
Normal file
@@ -0,0 +1,11 @@
|
||||
const swaggerUI = require('swagger-ui-express');
|
||||
const yaml = require('js-yaml');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
// Loading via yml.safeLoad to avoid errors with special characters during processing
|
||||
const swaggerDocument = yaml.safeLoad(fs.readFileSync(path.resolve(__dirname, '../swagger.yml'), 'utf8'));
|
||||
|
||||
const app = require('../server');
|
||||
|
||||
app.use('/api-docs', swaggerUI.serve, swaggerUI.setup(swaggerDocument));
|
||||
Reference in New Issue
Block a user