Files
lst/lstV2/server/services/auth/middleware/authMiddleware.ts

63 lines
2.1 KiB
TypeScript

import axios from "axios";
import { type MiddlewareHandler } from "hono";
import jwt from "jsonwebtoken";
const { sign, verify } = jwt;
export const authMiddleware: MiddlewareHandler = async (c, next) => {
console.log("middleware checked");
// const cookieHeader = c.req.header("Cookie");
// if (!cookieHeader) return c.json({ error: "Unauthorized" }, 401);
// const res = await axios.get(`${process.env.LST_BASE_URL}/api/user/me`, {
// headers: { Cookie: cookieHeader },
// });
// if (res.status === 401) return c.json({ error: "Unauthorized" }, 401);
// //const user = await resp.json();
// c.set("user", res.data.user);
return next();
};
// export const authMiddleware: MiddlewareHandler = async (c, next) => {
// const authHeader = c.req.header("Authorization");
// if (!authHeader || !authHeader.startsWith("Bearer ")) {
// return c.json({error: "Unauthorized"}, 401);
// }
// const token = authHeader.split(" ")[1];
// try {
// const decoded = verify(token, process.env.JWT_SECRET!, {ignoreExpiration: false}) as {
// userId: number;
// exp: number;
// };
// const currentTime = Math.floor(Date.now() / 1000); // Get current timestamp
// const timeLeft = decoded.exp - currentTime;
// // If the token has less than REFRESH_THRESHOLD seconds left, refresh it
// let newToken = null;
// if (timeLeft < parseInt(process.env.REFRESH_THRESHOLD!)) {
// newToken = sign({userId: decoded.userId}, process.env.JWT_SECRET!, {
// expiresIn: parseInt(process.env.EXPIRATION_TIME!),
// });
// c.res.headers.set("Authorization", `Bearer ${newToken}`);
// }
// c.set("user", {id: decoded.userId});
// await next();
// // If a new token was generated, send it in response headers
// if (newToken) {
// console.log("token was refreshed");
// c.res.headers.set("X-Refreshed-Token", newToken);
// }
// } catch (err) {
// return c.json({error: "Invalid token"}, 401);
// }
// };