summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/actions/login.ts9
-rw-r--r--src/components/Login2.tsx2
-rw-r--r--src/lib/server/cookie.ts3
-rw-r--r--src/lib/server/cookiebridge.ts7
-rw-r--r--src/pages/login.tsx3
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 (