mirror of
https://github.com/20kaushik02/spotify-manager.git
synced 2025-12-06 06:34:06 +00:00
37 lines
1.0 KiB
JavaScript
37 lines
1.0 KiB
JavaScript
const { sessionName } = require("../constants");
|
|
const typedefs = require("../typedefs");
|
|
const logger = require("../utils/logger")(module);
|
|
|
|
/**
|
|
* middleware to check if access token is present
|
|
* @param {typedefs.Req} req
|
|
* @param {typedefs.Res} res
|
|
* @param {typedefs.Next} next
|
|
*/
|
|
const isAuthenticated = (req, res, next) => {
|
|
if (req.session.accessToken) {
|
|
req.sessHeaders = {
|
|
"Authorization": `Bearer ${req.session.accessToken}`,
|
|
// "X-RateLimit-SessID": `${req.sessionID}_${req.session.user.username}`
|
|
};
|
|
next();
|
|
} else {
|
|
const delSession = req.session.destroy((err) => {
|
|
if (err) {
|
|
res.status(500).send({ message: "Internal Server Error" });
|
|
logger.error("session.destroy", { err });
|
|
return;
|
|
} else {
|
|
res.clearCookie(sessionName);
|
|
res.status(401).send({ message: "Unauthorized" });
|
|
logger.debug("Session invalid, destroyed.", { sessionID: delSession.id });
|
|
return;
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
isAuthenticated,
|
|
}
|