summaryrefslogtreecommitdiff
path: root/apps/web/src/app/api/waitlist/token
diff options
context:
space:
mode:
authorKha Nguyen <hi@khanguyen.com>2025-07-24 17:00:49 -0500
committerKha Nguyen <hi@khanguyen.com>2025-07-24 17:00:49 -0500
commit1ccacf6bb5db579cf6f343d9de57bce92d296f5f (patch)
tree8f4ab02ef1c0a7420c1827607207c52629e56288 /apps/web/src/app/api/waitlist/token
parent0b7a943de30663a37aec93421cbd90dfbd673d87 (diff)
downloadopencut-1ccacf6bb5db579cf6f343d9de57bce92d296f5f.tar.gz
merge main
Diffstat (limited to 'apps/web/src/app/api/waitlist/token')
-rw-r--r--apps/web/src/app/api/waitlist/token/route.ts23
1 files changed, 19 insertions, 4 deletions
diff --git a/apps/web/src/app/api/waitlist/token/route.ts b/apps/web/src/app/api/waitlist/token/route.ts
index 4c7695fa..fc2ff32c 100644
--- a/apps/web/src/app/api/waitlist/token/route.ts
+++ b/apps/web/src/app/api/waitlist/token/route.ts
@@ -5,7 +5,10 @@ import { env } from "@/env";
const CSRF_TOKEN_NAME = "waitlist-csrf";
const TOKEN_EXPIRY = 60 * 60 * 1000;
-const allowedHosts = env.NODE_ENV === "development" ? ["localhost:3000", "127.0.0.1:3000"] : ["opencut.app", "www.opencut.app"];
+const allowedHosts =
+ env.NODE_ENV === "development"
+ ? ["localhost:3000", "127.0.0.1:3000"]
+ : ["opencut.app", "www.opencut.app"];
export async function GET(request: NextRequest) {
const referer = request.headers.get("referer");
@@ -14,11 +17,20 @@ export async function GET(request: NextRequest) {
if (referer) {
const refererUrl = new URL(referer);
- if (!allowedHosts.some((allowed) => refererUrl.host === allowed || refererUrl.host.endsWith(allowed))) {
+ if (
+ !allowedHosts.some(
+ (allowed) =>
+ refererUrl.host === allowed || refererUrl.host.endsWith(allowed)
+ )
+ ) {
return NextResponse.json({ error: "Forbidden" }, { status: 403 });
}
} else if (host) {
- if (!allowedHosts.some((allowed) => host === allowed || host.endsWith(allowed))) {
+ if (
+ !allowedHosts.some(
+ (allowed) => host === allowed || host.endsWith(allowed)
+ )
+ ) {
return NextResponse.json({ error: "Forbidden" }, { status: 403 });
}
} else {
@@ -31,7 +43,10 @@ export async function GET(request: NextRequest) {
const token = crypto.randomBytes(32).toString("hex");
const timestamp = Date.now();
- const signature = crypto.createHmac("sha256", env.BETTER_AUTH_SECRET).update(`${token}:${timestamp}`).digest("hex");
+ const signature = crypto
+ .createHmac("sha256", env.BETTER_AUTH_SECRET)
+ .update(`${token}:${timestamp}`)
+ .digest("hex");
const cookieStore = await cookies();
cookieStore.set(CSRF_TOKEN_NAME, `${token}:${timestamp}:${signature}`, {