summaryrefslogtreecommitdiffstats
path: root/finished-application/backend/src/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'finished-application/backend/src/index.js')
-rw-r--r--finished-application/backend/src/index.js18
1 files changed, 10 insertions, 8 deletions
diff --git a/finished-application/backend/src/index.js b/finished-application/backend/src/index.js
index 2a1b433..804d6d6 100644
--- a/finished-application/backend/src/index.js
+++ b/finished-application/backend/src/index.js
@@ -1,30 +1,33 @@
-/* eslint-disable */
-require('dotenv').config({ path: 'variables.env' });
-/* eslint-enable */
+const cookieParser = require('cookie-parser');
const jwt = require('jsonwebtoken');
+
+require('dotenv').config({ path: 'variables.env' });
const createServer = require('./createServer');
const db = require('./db');
-const cookieParser = require('cookie-parser');
const server = createServer();
server.express.use(cookieParser());
+// decode the JWT so we can get the user Id on each request
server.express.use((req, res, next) => {
const { token } = req.cookies;
if (token) {
const { userId } = jwt.verify(token, process.env.APP_SECRET);
+ // put the userId onto the req for future requests to access
req.userId = userId;
}
next();
});
-// 2. Get User from their ID
+// 2. Create a middleware that populates the user on each request
+
server.express.use(async (req, res, next) => {
+ // if they aren't logged in, skip this
if (!req.userId) return next();
const user = await db.query.user(
{ where: { id: req.userId } },
- `{ id, permissions, email, name }`
+ '{ id, permissions, email, name }'
);
req.user = user;
next();
@@ -36,9 +39,8 @@ server.start(
credentials: true,
origin: process.env.FRONTEND_URL,
},
- port: process.env.PORT,
},
deets => {
- console.log(`Server is running on http://localhost:${deets.port}`);
+ console.log(`Server is now running on port http://localhost:${deets.port}`);
}
);