Dagemark-Webapp/lib/server_functions/userAuth.ts
2026-09-15 11:22:37 +02:00

42 lines
1.2 KiB
TypeScript

"use server";
import { cookies } from "next/headers";
import { redirect } from "next/navigation";
import { createUser, loginUser } from "../api/helpers/users";
import { Token } from "../api/types";
export async function login(formData: FormData) {
"use server";
const token = await loginUser(formData);
console.log(`Fetched following token for login: ${token}`);
await createSession(token);
redirect("/Admin/Overview");
}
export async function signup(formData: FormData) {
// Technically same code as login for now but will do different stuff with it later so separating it early on
"use server";
const token = await createUser(formData);
await createSession(token);
redirect("/Admin/Overview");
}
export async function createSession(token: Token) {
const access_token = token.access_token;
const cookieStore = await cookies();
cookieStore.set("access_token", access_token, {
httpOnly: true,
secure: process.env.NODE_ENV === "production",
sameSite: "lax",
path: "/",
});
}
export async function getSessionToken() {
const cookieStore = await cookies();
console.log(cookieStore.getAll());
const token = cookieStore.get("access_token")?.value;
return token ? token : null;
}