summaryrefslogtreecommitdiff
path: root/src/lib/server/cookie.ts
diff options
context:
space:
mode:
authorpolwex <polwex@sortug.com>2025-05-15 10:13:00 +0700
committerpolwex <polwex@sortug.com>2025-05-15 10:13:00 +0700
commitd56594d3289002566f4653d607f0837befd65109 (patch)
treef69685b458419566a78727ce6a8cecd0cdc269a5 /src/lib/server/cookie.ts
parent04509d9207603d9055cf022051763ec05c9214d6 (diff)
wtf man
Diffstat (limited to 'src/lib/server/cookie.ts')
-rw-r--r--src/lib/server/cookie.ts47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/lib/server/cookie.ts b/src/lib/server/cookie.ts
new file mode 100644
index 0000000..fadac9d
--- /dev/null
+++ b/src/lib/server/cookie.ts
@@ -0,0 +1,47 @@
+import {
+ getCookie,
+ getSignedCookie,
+ setCookie,
+ setSignedCookie,
+ deleteCookie,
+} from "hono/cookie";
+import cookie from "cookie";
+// console.log("db module path:", "@/lib/db");
+// console.log(
+// "globalThis.__WAKU_MIDDLEWARE_CONTEXT_STORAGE__:",
+// globalThis.__WAKU_MIDDLEWARE_CONTEXT_STORAGE__,
+// );
+import db from "../db";
+
+import type { Middleware } from "waku/config";
+
+// XXX we would probably like to extend config.
+
+const cookieMiddleware: Middleware = () => {
+ console.log("cookieMiddleware executed");
+ return async (ctx, next) => {
+ if (ctx.req.url.pathname === "/login") return await next();
+ const cookies = cookie.parse(ctx.req.headers.cookie || "");
+ console.log({ cookies });
+ const coki = cookies.sorlang;
+ if (!coki) {
+ ctx.res.status = 301;
+ ctx.res.headers = {
+ Location: "/login",
+ };
+ }
+ if (coki) {
+ const userRow = db.fetchCookie(coki);
+ if (userRow) ctx.data.user = { id: userRow.id, name: userRow.name };
+ else {
+ ctx.res.status = 301;
+ ctx.res.headers = {
+ Location: "/login",
+ };
+ }
+ }
+ await next();
+ };
+};
+
+export default cookieMiddleware;