2023-06-09 11:27:27 -07:00
|
|
|
process.env.NODE_ENV === "development"
|
|
|
|
? require("dotenv").config({ path: `.env.${process.env.NODE_ENV}` })
|
|
|
|
: require("dotenv").config();
|
|
|
|
const JWT = require("jsonwebtoken");
|
|
|
|
|
2023-06-03 19:28:07 -07:00
|
|
|
function reqBody(request) {
|
2023-06-07 21:31:35 -07:00
|
|
|
return typeof request.body === "string"
|
2023-06-03 19:28:07 -07:00
|
|
|
? JSON.parse(request.body)
|
|
|
|
: request.body;
|
|
|
|
}
|
|
|
|
|
|
|
|
function queryParams(request) {
|
|
|
|
return request.query;
|
|
|
|
}
|
|
|
|
|
2023-06-09 11:27:27 -07:00
|
|
|
function makeJWT(info = {}, expiry = "30d") {
|
2023-07-20 15:25:47 -07:00
|
|
|
if (!process.env.JWT_SECRET)
|
|
|
|
throw new Error("Cannot create JWT as JWT_SECRET is unset.");
|
|
|
|
return JWT.sign(info, process.env.JWT_SECRET, { expiresIn: expiry });
|
2023-06-09 11:27:27 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
function decodeJWT(jwtToken) {
|
|
|
|
try {
|
2023-07-20 15:25:47 -07:00
|
|
|
return JWT.verify(jwtToken, process.env.JWT_SECRET);
|
2023-06-09 11:27:27 -07:00
|
|
|
} catch {}
|
2023-07-20 15:25:47 -07:00
|
|
|
return { p: null };
|
2023-06-09 11:27:27 -07:00
|
|
|
}
|
|
|
|
|
2023-06-03 19:28:07 -07:00
|
|
|
module.exports = {
|
|
|
|
reqBody,
|
|
|
|
queryParams,
|
2023-06-09 11:27:27 -07:00
|
|
|
makeJWT,
|
|
|
|
decodeJWT,
|
2023-06-03 19:28:07 -07:00
|
|
|
};
|