Skip to content

Commit 7abc1bd

Browse files
committed
fix: pass keyless keys to client
1 parent 238f5d3 commit 7abc1bd

3 files changed

Lines changed: 10 additions & 2 deletions

File tree

packages/astro/src/env.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ declare namespace App {
3434
runtime: { env: InternalEnv };
3535
keylessClaimUrl?: string;
3636
keylessApiKeysUrl?: string;
37+
keylessPublishableKey?: string;
3738
}
3839
}
3940

packages/astro/src/server/clerk-middleware.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,10 +139,14 @@ export const clerkMiddleware: ClerkMiddleware = (...args: unknown[]): any => {
139139

140140
decorateAstroLocal(clerkRequest, authObjectFn, context, requestState);
141141

142-
// Store keyless URLs for injection into client
142+
// Store keyless data for injection into client
143143
if (keylessClaimUrl || keylessApiKeysUrl) {
144144
context.locals.keylessClaimUrl = keylessClaimUrl;
145145
context.locals.keylessApiKeysUrl = keylessApiKeysUrl;
146+
// Also store the resolved publishable key so client can use it
147+
if (keylessOptions?.publishableKey) {
148+
context.locals.keylessPublishableKey = keylessOptions.publishableKey;
149+
}
146150
}
147151

148152
/**

packages/astro/src/server/get-safe-env.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ function getSafeEnv(context: ContextOrLocals) {
2727
domain: getContextEnvVar('PUBLIC_CLERK_DOMAIN', context),
2828
isSatellite: getContextEnvVar('PUBLIC_CLERK_IS_SATELLITE', context) === 'true',
2929
proxyUrl: getContextEnvVar('PUBLIC_CLERK_PROXY_URL', context),
30-
pk: getContextEnvVar('PUBLIC_CLERK_PUBLISHABLE_KEY', context),
30+
// Use keyless publishable key if available, otherwise read from env
31+
pk: locals.keylessPublishableKey || getContextEnvVar('PUBLIC_CLERK_PUBLISHABLE_KEY', context),
3132
sk: getContextEnvVar('CLERK_SECRET_KEY', context),
3233
machineSecretKey: getContextEnvVar('CLERK_MACHINE_SECRET_KEY', context),
3334
signInUrl: getContextEnvVar('PUBLIC_CLERK_SIGN_IN_URL', context),
@@ -62,6 +63,8 @@ function getClientSafeEnv(context: ContextOrLocals) {
6263
proxyUrl: getContextEnvVar('PUBLIC_CLERK_PROXY_URL', context),
6364
signInUrl: getContextEnvVar('PUBLIC_CLERK_SIGN_IN_URL', context),
6465
signUpUrl: getContextEnvVar('PUBLIC_CLERK_SIGN_UP_URL', context),
66+
// In keyless mode, pass the resolved publishable key to client
67+
publishableKey: locals.keylessPublishableKey || getContextEnvVar('PUBLIC_CLERK_PUBLISHABLE_KEY', context),
6568
// Read from locals (set by middleware) instead of env vars
6669
keylessClaimUrl: locals.keylessClaimUrl,
6770
keylessApiKeysUrl: locals.keylessApiKeysUrl,

0 commit comments

Comments
 (0)