From fcbd132a780de732aa856d4ac7ea3b2ca545f2d9 Mon Sep 17 00:00:00 2001 From: Gabriel Kaszewski Date: Thu, 14 May 2026 18:13:57 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20registration=20=E2=80=94=20parse=20AuthR?= =?UTF-8?q?esponse=20correctly,=20auto-login=20after=20successful=20regist?= =?UTF-8?q?ration?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- thoughts-frontend/app/(auth)/register/page.tsx | 7 ++++--- thoughts-frontend/lib/api.ts | 6 +++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/thoughts-frontend/app/(auth)/register/page.tsx b/thoughts-frontend/app/(auth)/register/page.tsx index 96eaa2f..c83d921 100644 --- a/thoughts-frontend/app/(auth)/register/page.tsx +++ b/thoughts-frontend/app/(auth)/register/page.tsx @@ -23,6 +23,7 @@ import { } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; import { RegisterSchema, registerUser } from "@/lib/api"; +import Cookies from "js-cookie"; import { useState } from "react"; export default function RegisterPage() { @@ -37,9 +38,9 @@ export default function RegisterPage() { async function onSubmit(values: z.infer) { try { setError(null); - await registerUser(values); - // You can automatically log the user in here or just redirect them - router.push("/login"); + const { token } = await registerUser(values); + Cookies.set("auth_token", token, { expires: 7, secure: true }); + router.push("/"); } catch { setError("Username or email may already be taken."); } diff --git a/thoughts-frontend/lib/api.ts b/thoughts-frontend/lib/api.ts index ef743ce..da02dd2 100644 --- a/thoughts-frontend/lib/api.ts +++ b/thoughts-frontend/lib/api.ts @@ -168,7 +168,11 @@ async function apiFetch( // ── Auth ────────────────────────────────────────────────────────────────── export const registerUser = (data: z.infer) => - apiFetch("/auth/register", { method: "POST", body: JSON.stringify(data) }, UserSchema); + apiFetch( + "/auth/register", + { method: "POST", body: JSON.stringify(data) }, + z.object({ token: z.string(), user: UserSchema }) + ); export const loginUser = (data: z.infer) => apiFetch("/auth/login", { method: "POST", body: JSON.stringify(data) }, z.object({ token: z.string() }));