Skip to content

Commit 4d0ee39

Browse files
committed
fix dev mode
1 parent 69a3119 commit 4d0ee39

3 files changed

Lines changed: 28 additions & 15 deletions

File tree

packages/astro/src/integration/create-integration.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,22 @@ function createIntegration<Params extends HotloadAstroClerkIntegrationParams>()
4545

4646
if (isDev) {
4747
try {
48-
resolvedKeys = await resolveKeysWithKeylessFallback(envPublishableKey, envSecretKey);
49-
} catch {
48+
resolvedKeys = await resolveKeysWithKeylessFallback(envPublishableKey, envSecretKey, isDev);
49+
if (resolvedKeys.publishableKey) {
50+
logger.info(`Clerk: Using ${resolvedKeys.claimUrl ? 'keyless' : 'configured'} keys`);
51+
}
52+
} catch (error) {
5053
logger.warn('Keyless mode initialization failed, using configured keys');
54+
logger.debug(`Keyless error: ${error}`);
5155
}
5256
}
5357

58+
if (!resolvedKeys.publishableKey && !resolvedKeys.secretKey) {
59+
logger.error(
60+
'Missing Clerk keys. Set PUBLIC_CLERK_PUBLISHABLE_KEY and CLERK_SECRET_KEY environment variables, or let keyless mode generate them automatically.',
61+
);
62+
}
63+
5464
const internalParams: ClerkOptions = {
5565
...params,
5666
sdkMetadata: {

packages/astro/src/server/keyless/index.ts

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,20 @@ export async function keyless() {
1010
if (!keylessServiceInstance) {
1111
const storage = await createFileStorage();
1212

13+
const mockContext = {
14+
locals: { runtime: { env: {} } },
15+
} as unknown as APIContext;
16+
1317
keylessServiceInstance = createKeylessService({
1418
storage,
1519
api: {
1620
async createAccountlessApplication(requestHeaders?: Headers) {
1721
try {
18-
const mockContext = {
19-
locals: { runtime: { env: {} } },
20-
} as unknown as APIContext;
21-
22-
return await clerkClient(mockContext).__experimental_accountlessApplications.createAccountlessApplication({
22+
return await clerkClient(mockContext, {
23+
secretKey: process.env.CLERK_SECRET_KEY,
24+
publishableKey: process.env.PUBLIC_CLERK_PUBLISHABLE_KEY,
25+
apiUrl: process.env.CLERK_API_URL,
26+
}).__experimental_accountlessApplications.createAccountlessApplication({
2327
requestHeaders,
2428
});
2529
} catch {
@@ -28,13 +32,11 @@ export async function keyless() {
2832
},
2933
async completeOnboarding(requestHeaders?: Headers) {
3034
try {
31-
const mockContext = {
32-
locals: { runtime: { env: {} } },
33-
} as unknown as APIContext;
34-
35-
return await clerkClient(
36-
mockContext,
37-
).__experimental_accountlessApplications.completeAccountlessApplicationOnboarding({
35+
return await clerkClient(mockContext, {
36+
secretKey: process.env.CLERK_SECRET_KEY,
37+
publishableKey: process.env.PUBLIC_CLERK_PUBLISHABLE_KEY,
38+
apiUrl: process.env.CLERK_API_URL,
39+
}).__experimental_accountlessApplications.completeAccountlessApplicationOnboarding({
3840
requestHeaders,
3941
});
4042
} catch {

packages/astro/src/server/keyless/utils.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,14 @@ export interface KeylessResult {
1414
export async function resolveKeysWithKeylessFallback(
1515
configuredPublishableKey: string | undefined,
1616
configuredSecretKey: string | undefined,
17+
isDev: boolean = false,
1718
): Promise<KeylessResult> {
1819
let publishableKey = configuredPublishableKey;
1920
let secretKey = configuredSecretKey;
2021
let claimUrl: string | undefined;
2122
let apiKeysUrl: string | undefined;
2223

23-
if (!canUseKeyless) {
24+
if (!isDev || !canUseKeyless) {
2425
return { publishableKey, secretKey, claimUrl, apiKeysUrl };
2526
}
2627

0 commit comments

Comments
 (0)