import { Middleware } from "@lib/router.ts"; import admin from "@lib/admin.ts"; const LOGIN_PATH = "/login"; const authMiddleware: Middleware = async (c, next) => { const token = c.cookies.get("token"); const isValid = token .map((token) => admin.sessions.verifyToken(token)) .toBoolean(); const path = c.path; if (path.startsWith("/public")) { await next(); } else { if (path !== LOGIN_PATH && !isValid) { return c.redirect("/login"); } if (path === LOGIN_PATH && isValid) { return c.redirect(""); } await next(); } }; export default authMiddleware;