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() }));