mirror of
https://github.com/20kaushik02/spotify-manager.git
synced 2025-12-06 09:54:07 +00:00
32 lines
866 B
TypeScript
32 lines
866 B
TypeScript
import type { RequestHandler } from "express";
|
|
|
|
import { sessionName } from "../constants.ts";
|
|
|
|
import logger from "../utils/logger.ts";
|
|
|
|
const isAuthenticated: RequestHandler = (req, res, next) => {
|
|
if (req.session.accessToken) {
|
|
req.session.authHeaders = {
|
|
Authorization: `Bearer ${req.session.accessToken}`,
|
|
};
|
|
next();
|
|
} else {
|
|
const delSession = req.session.destroy((error) => {
|
|
if (Object.keys(error).length) {
|
|
res.status(500).send({ message: "Internal Server Error" });
|
|
logger.error("session.destroy", { error });
|
|
return;
|
|
} else {
|
|
res.clearCookie(sessionName);
|
|
res.status(401).send({ message: "Unauthorized" });
|
|
logger.debug("Session invalid, destroyed.", {
|
|
sessionID: delSession.id,
|
|
});
|
|
return;
|
|
}
|
|
});
|
|
}
|
|
};
|
|
|
|
export { isAuthenticated };
|