a tool for shared writing and social publishing
1import { cookies, headers } from "next/headers";
2import { isProductionDomain } from "./utils/isProductionDeployment";
3
4export async function getAuthToken() {
5 let cookieStore = await cookies();
6 return (
7 cookieStore.get("auth_token")?.value ||
8 cookieStore.get("external_auth_token")?.value ||
9 null
10 );
11}
12
13export async function setAuthToken(tokenID: string) {
14 let c = await cookies();
15 let host = (await headers()).get("host");
16 c.set("auth_token", tokenID, {
17 maxAge: 60 * 60 * 24 * 365,
18 secure: process.env.NODE_ENV === "production",
19 domain: isProductionDomain() ? host! : undefined,
20 httpOnly: true,
21 sameSite: "lax",
22 });
23}
24
25export async function removeAuthToken() {
26 let c = await cookies();
27 c.delete({
28 name: "auth_token",
29 domain: isProductionDomain() ? ".leaflet.pub" : undefined,
30 });
31}