History

pass through

Rhys Sullivan committed 9 months ago

Commit 541ce7f1 parent 51a13861 file · +22 −1Browse files

Unified · Split

executor/apps/web/src/app/sign-up/route.ts+22−1
@@ -21,6 +21,26 @@ function readOptionalQueryParam(request: NextRequest, keys: string[]): string | · 20 unmodified lines
21 return undefined;21 return undefined;
22}22}
23 23
24const AUTHKIT_PASSTHROUGH_QUERY_KEYS = [
25 "authorization_session_id",
26 "redirect_uri",
27 "state",
28];
29
30function appendAuthkitPassthroughQueryParams(request: NextRequest, authorizationUrl: string): string {
31 const nextUrl = new URL(authorizationUrl);
32
33 for (const key of AUTHKIT_PASSTHROUGH_QUERY_KEYS) {
34 const value = request.nextUrl.searchParams.get(key);
35 if (!value || value.trim().length === 0) {
36 continue;
37 }
38 nextUrl.searchParams.set(key, value.trim());
39 }
40
41 return nextUrl.toString();
42}
43
24const convexUrl = process.env.NEXT_PUBLIC_CONVEX_URL ?? process.env.CONVEX_URL;44const convexUrl = process.env.NEXT_PUBLIC_CONVEX_URL ?? process.env.CONVEX_URL;
25const convexClient = convexUrl ? new ConvexHttpClient(convexUrl) : null;45const convexClient = convexUrl ? new ConvexHttpClient(convexUrl) : null;
26 46
@@ -65,10 +85,11 @@ export async function GET(request: NextRequest) { · 38 unmodified lines
65 const loginHint = readOptionalQueryParam(request, ["loginHint", "login_hint", "email"]);85 const loginHint = readOptionalQueryParam(request, ["loginHint", "login_hint", "email"]);
66 86
67 const { getSignUpUrl } = await import("@workos-inc/authkit-nextjs");87 const { getSignUpUrl } = await import("@workos-inc/authkit-nextjs");
68 const authorizationUrl = await getSignUpUrl({88 const baseAuthorizationUrl = await getSignUpUrl({
69 redirectUri,89 redirectUri,
70 organizationId,90 organizationId,
71 loginHint,91 loginHint,
72 });92 });
93 const authorizationUrl = appendAuthkitPassthroughQueryParams(request, baseAuthorizationUrl);
73 return redirect(authorizationUrl);94 return redirect(authorizationUrl);
74}95}