diff options
author | polwex <polwex@sortug.com> | 2025-05-15 10:28:07 +0700 |
---|---|---|
committer | polwex <polwex@sortug.com> | 2025-05-15 10:28:07 +0700 |
commit | ee2352b5268a1f33c4db72237a7c5171f0c1efbc (patch) | |
tree | 83513e84613e4fdb64004225d92594a2a7fbaae4 /src | |
parent | d56594d3289002566f4653d607f0837befd65109 (diff) |
m
Diffstat (limited to 'src')
-rw-r--r-- | src/actions/login.ts | 9 | ||||
-rw-r--r-- | src/components/Login2.tsx | 2 | ||||
-rw-r--r-- | src/lib/server/cookie.ts | 3 | ||||
-rw-r--r-- | src/lib/server/cookiebridge.ts | 7 | ||||
-rw-r--r-- | src/pages/login.tsx | 3 |
5 files changed, 20 insertions, 4 deletions
diff --git a/src/actions/login.ts b/src/actions/login.ts index 3d83b55..7ca9d77 100644 --- a/src/actions/login.ts +++ b/src/actions/login.ts @@ -42,7 +42,8 @@ export async function postLogin( if ("error" in res) return { error: res.error }; else { setCookie(res.ok as number); - return { success: true }; + return prevState; + // return { success: true }; } } async function setCookie(userId: number) { @@ -56,3 +57,9 @@ async function setCookie(userId: number) { setCookie("sorlang", cokistring, COOKIE_OPTS); // unstable_redirect("/"); } + +async function postLogout(prev: any) { + const { delCookie } = cookies(); + const rest = delCookie("sorlang"); + return prev; +} diff --git a/src/components/Login2.tsx b/src/components/Login2.tsx index 2164b1a..ef3a603 100644 --- a/src/components/Login2.tsx +++ b/src/components/Login2.tsx @@ -54,7 +54,7 @@ function OOldform({ isReg, toggle }: { isReg: boolean; toggle: () => void }) { const [state, formAction, isPending] = useActionState<FormState, FormData>( isReg ? postRegister : postLogin, - {}, + { error: "" }, "/login", ); // const nav = useRouter(); diff --git a/src/lib/server/cookie.ts b/src/lib/server/cookie.ts index fadac9d..30f215e 100644 --- a/src/lib/server/cookie.ts +++ b/src/lib/server/cookie.ts @@ -20,11 +20,11 @@ import type { Middleware } from "waku/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) { + if (ctx.req.url.pathname === "/login") return await next(); ctx.res.status = 301; ctx.res.headers = { Location: "/login", @@ -34,6 +34,7 @@ const cookieMiddleware: Middleware = () => { const userRow = db.fetchCookie(coki); if (userRow) ctx.data.user = { id: userRow.id, name: userRow.name }; else { + if (ctx.req.url.pathname === "/login") return await next(); ctx.res.status = 301; ctx.res.headers = { Location: "/login", diff --git a/src/lib/server/cookiebridge.ts b/src/lib/server/cookiebridge.ts index ca4bd44..4dce095 100644 --- a/src/lib/server/cookiebridge.ts +++ b/src/lib/server/cookiebridge.ts @@ -27,7 +27,12 @@ const cookies = () => { ctx.cookies = updated.getAll(); return updated; }; - return { getCookie, setCookie }; + const delCookie: ResponseCookies["delete"] = (...args) => { + const updated = resCookies.delete(...args); + ctx.cookies = updated.getAll(); + return updated; + }; + return { getCookie, setCookie, delCookie }; }; export { cookies }; diff --git a/src/pages/login.tsx b/src/pages/login.tsx index 8ddc1a1..2c9f643 100644 --- a/src/pages/login.tsx +++ b/src/pages/login.tsx @@ -1,8 +1,11 @@ import AuthScreen from "@/components/Login2"; import { Link } from "waku"; import db from "@/lib/db"; +import { getContextData } from "waku/middleware/context"; export default async function AuthPage() { + const ctx = getContextData(); + console.log({ ctx }); const data = await getData(); return ( |