63 lines
2.1 KiB
TypeScript
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);
|
|
// }
|
|
// };
|