From fd35f74b61607f0ab9b1aa6958b359bf3d372324 Mon Sep 17 00:00:00 2001 From: "Builder.io" Date: Sun, 9 Nov 2025 07:39:17 +0000 Subject: [PATCH] Create Discord OAuth start endpoint cgen-54827a549ff34e8690cccd94282ef829 --- api/discord/oauth/start.ts | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 api/discord/oauth/start.ts diff --git a/api/discord/oauth/start.ts b/api/discord/oauth/start.ts new file mode 100644 index 00000000..4197d703 --- /dev/null +++ b/api/discord/oauth/start.ts @@ -0,0 +1,30 @@ +export const config = { + runtime: "nodejs", +}; + +export default function handler(req: any, res: any) { + if (req.method !== "GET") { + return res.status(405).json({ error: "Method not allowed" }); + } + + const clientId = process.env.DISCORD_CLIENT_ID; + if (!clientId) { + return res.status(500).json({ error: "Discord client ID not configured" }); + } + + const redirectUri = `${process.env.VITE_API_BASE || "https://aethex.dev"}/api/discord/oauth/callback`; + + // Get the next URL from query params (where to redirect after login) + const next = req.query.state || "/dashboard"; + + const params = new URLSearchParams({ + client_id: clientId, + redirect_uri: redirectUri, + response_type: "code", + scope: "identify email", + state: typeof next === "string" ? next : "/dashboard", + }); + + const discordOAuthUrl = `https://discord.com/api/oauth2/authorize?${params.toString()}`; + res.redirect(discordOAuthUrl); +}