"use server";
import { auth } from "@/auth";
import { cookies } from "next/headers";
export async function signInAction({
email,
password,
}: {
email: string;
password: string;
}) {
const res = await auth.api.signInEmail({
body: {
email,
password,
},
asResponse: true,
});
const cookieStore = await cookies();
const sessionCookieFull = res.headers.get("set-cookie");
if (sessionCookieFull) {
const [sessionCookie, _maxAge, _path, _httpOnly, _sameSite] =
sessionCookieFull.split(";").map((part) => part.trim());
const [key, value] = sessionCookie.split("=");
const maxAge = _maxAge.split("=")[1];
const path = _path.split("=")[1];
const httpOnly = Boolean(_httpOnly.split("=")[1]);
const sameSite = _sameSite.split("=")[1];
console.log({ key, value, maxAge, path, httpOnly, sameSite });
cookieStore.delete(key);
cookieStore.set(key, value, {
maxAge: Number(maxAge),
path,
httpOnly: true,
...(sameSite === "Lax" ? { sameSite: "lax" } : {}),
});
}
}
"use server";
import { auth } from "@/auth";
import { cookies } from "next/headers";
export async function signInAction({
email,
password,
}: {
email: string;
password: string;
}) {
const res = await auth.api.signInEmail({
body: {
email,
password,
},
asResponse: true,
});
const cookieStore = await cookies();
const sessionCookieFull = res.headers.get("set-cookie");
if (sessionCookieFull) {
const [sessionCookie, _maxAge, _path, _httpOnly, _sameSite] =
sessionCookieFull.split(";").map((part) => part.trim());
const [key, value] = sessionCookie.split("=");
const maxAge = _maxAge.split("=")[1];
const path = _path.split("=")[1];
const httpOnly = Boolean(_httpOnly.split("=")[1]);
const sameSite = _sameSite.split("=")[1];
console.log({ key, value, maxAge, path, httpOnly, sameSite });
cookieStore.delete(key);
cookieStore.set(key, value, {
maxAge: Number(maxAge),
path,
httpOnly: true,
...(sameSite === "Lax" ? { sameSite: "lax" } : {}),
});
}
}