@codefox-inc/oauth-provider 0.2.3 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,15 +2,15 @@
2
2
 
3
3
  OAuth 2.1 / OpenID Connect Provider implemented as a Convex component.
4
4
 
5
- > **⚠️ Beta Software**
6
- > Built for [Convex Auth](https://labs.convex.dev/auth) which is currently in **Beta**.
7
- > Expect breaking changes. Production use at your own risk.
5
+ > **⚠️ Beta Software** - Production use at your own risk.
6
+
7
+ Tested with [Convex Auth](https://labs.convex.dev/auth) and [@convex-dev/better-auth](https://labs.convex.dev/better-auth).
8
8
 
9
9
  ## Why?
10
10
 
11
11
  Most MCP clients (like Claude Code or ChatGPT) require your app to be an OAuth provider. If you want to connect your Convex app to MCP clients, you need to implement OAuth 2.1.
12
12
 
13
- This component turns your Convex Auth app into a fully compliant OAuth 2.1 provider, so you can:
13
+ This component turns your Convex app into a fully compliant OAuth 2.1 provider, so you can:
14
14
  - Connect to MCP clients out of the box
15
15
  - Let clients register automatically via Dynamic Client Registration
16
16
  - Let users control what permissions each app gets
@@ -19,7 +19,7 @@ This component turns your Convex Auth app into a fully compliant OAuth 2.1 provi
19
19
  ## Installation
20
20
 
21
21
  ```bash
22
- npm add @codefox-inc/oauth-provider
22
+ npm install @codefox-inc/oauth-provider
23
23
  ```
24
24
 
25
25
  ## Features
@@ -34,7 +34,8 @@ npm add @codefox-inc/oauth-provider
34
34
  - **Authorization management** for user consent tracking
35
35
  - **JWKS endpoint** for token verification
36
36
 
37
- ## OAuth 2.1 Compliance
37
+ <details>
38
+ <summary><strong>OAuth 2.1 Compliance</strong></summary>
38
39
 
39
40
  This implementation follows [OAuth 2.1 (draft-ietf-oauth-v2-1-14)](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-14) specification:
40
41
 
@@ -54,7 +55,10 @@ This implementation follows [OAuth 2.1 (draft-ietf-oauth-v2-1-14)](https://datat
54
55
  - **Token Hashing**: All tokens stored as SHA-256 hashes
55
56
  - **Refresh Token Rotation**: New refresh token issued on each use, old token invalidated
56
57
 
57
- ## Security Features
58
+ </details>
59
+
60
+ <details>
61
+ <summary><strong>Security Features</strong></summary>
58
62
 
59
63
  ### Built-in Security Controls
60
64
 
@@ -75,7 +79,10 @@ The `/oauth/authorize` endpoint performs comprehensive validation:
75
79
  4. PKCE requirement (code_challenge with S256 method)
76
80
  5. User authentication via `getUserId` hook
77
81
 
78
- ## Scopes and Token Types
82
+ </details>
83
+
84
+ <details>
85
+ <summary><strong>Scopes and Token Types</strong></summary>
79
86
 
80
87
  ### Supported Scopes
81
88
 
@@ -99,6 +106,8 @@ Refresh tokens are **only issued** when the `offline_access` scope is requested
99
106
 
100
107
  This follows OAuth 2.1 and OpenID Connect specifications, ensuring that long-lived refresh tokens are only issued with explicit user consent.
101
108
 
109
+ </details>
110
+
102
111
  ## OAuth Token Detection Helper
103
112
 
104
113
  Provides helper functions to distinguish between OAuth tokens and session tokens:
@@ -121,11 +130,26 @@ if (isOAuthToken(identity)) {
121
130
 
122
131
  ### 1. Set Environment Variables
123
132
 
124
- #### With Convex Auth (Recommended)
133
+ This component works with any authentication system. Choose the setup that matches your stack:
134
+
135
+ #### Option A: With Convex Auth
125
136
 
126
137
  If you're using [Convex Auth](https://labs.convex.dev/auth), you already have the required environment variables configured (`JWT_PRIVATE_KEY`, `JWKS`, `SITE_URL`).
127
138
 
128
- #### Without Convex Auth
139
+ #### Option B: With Better Auth
140
+
141
+ If you're using [@convex-dev/better-auth](https://labs.convex.dev/better-auth), you can share the same keys:
142
+
143
+ ```bash
144
+ npx convex env set OAUTH_PRIVATE_KEY "$(cat private.pem)" # Or use JWT_PRIVATE_KEY
145
+ npx convex env set OAUTH_JWKS '{"keys":[...]}' # Or use JWKS
146
+ npx convex env set SITE_URL "https://your-app.example.com"
147
+ ```
148
+
149
+ **Important:** When using Better Auth, set `applicationID: "oauth-provider"` in your OAuthProvider config to distinguish OAuth tokens from Better Auth session tokens.
150
+
151
+ <details>
152
+ <summary><strong>Option C: Manual Setup</strong></summary>
129
153
 
130
154
  Generate RSA keys manually:
131
155
 
@@ -154,6 +178,8 @@ npx convex env set JWKS '{"keys":[...]}'
154
178
  npx convex env set SITE_URL "https://your-app.example.com"
155
179
  ```
156
180
 
181
+ </details>
182
+
157
183
  ### 2. Register Component
158
184
 
159
185
  ```typescript
@@ -214,7 +240,54 @@ registerOAuthRoutes(http, httpAction, oauthProvider, {
214
240
  export default http;
215
241
  ```
216
242
 
217
- #### Option B: Manual Route Registration
243
+ #### Option B: With Better Auth
244
+
245
+ ```typescript
246
+ // convex/http.ts
247
+ import { httpAction } from "./_generated/server";
248
+ import { httpRouter } from "convex/server";
249
+ import { OAuthProvider, registerOAuthRoutes } from "@codefox-inc/oauth-provider";
250
+ import { components } from "./_generated/api";
251
+ import { api } from "./_generated/api";
252
+
253
+ const http = httpRouter();
254
+
255
+ const oauthProvider = new OAuthProvider(components.oauthProvider, {
256
+ privateKey: process.env.OAUTH_PRIVATE_KEY ?? process.env.JWT_PRIVATE_KEY!,
257
+ jwks: process.env.OAUTH_JWKS ?? process.env.JWKS!,
258
+ siteUrl: process.env.SITE_URL!,
259
+
260
+ // IMPORTANT: Set applicationID to distinguish from Better Auth tokens
261
+ applicationID: "oauth-provider",
262
+
263
+ getUserId: async (ctx, request) => {
264
+ const identity = await ctx.auth.getUserIdentity();
265
+ return identity?.subject ?? null;
266
+ },
267
+ });
268
+
269
+ // Register Better Auth routes first (if using @convex-dev/better-auth)
270
+ // authComponent.registerRoutes(http, createAuth, { cors: true });
271
+
272
+ // Then register OAuth routes
273
+ registerOAuthRoutes(http, httpAction, oauthProvider, {
274
+ siteUrl: process.env.SITE_URL!,
275
+ getUserProfile: async (ctx, userId) => {
276
+ const user = await ctx.runQuery(api.users.get, { userId });
277
+ return user ? {
278
+ sub: userId,
279
+ name: user.name,
280
+ email: user.email,
281
+ picture: user.pictureUrl
282
+ } : null;
283
+ },
284
+ });
285
+
286
+ export default http;
287
+ ```
288
+
289
+ <details>
290
+ <summary><strong>Option C: Manual Route Registration</strong></summary>
218
291
 
219
292
  ```typescript
220
293
  // convex/http.ts
@@ -297,6 +370,8 @@ http.route({
297
370
  export default http;
298
371
  ```
299
372
 
373
+ </details>
374
+
300
375
  ## UserInfo Endpoint
301
376
 
302
377
  Requires `openid` scope. Returns claims based on scopes:
@@ -304,7 +379,8 @@ Requires `openid` scope. Returns claims based on scopes:
304
379
  - `profile`: Adds `name`, `picture`
305
380
  - `email`: Adds `email` (and `email_verified` if available)
306
381
 
307
- ## Client Registration
382
+ <details>
383
+ <summary><strong>Client Registration</strong></summary>
308
384
 
309
385
  ### Register OAuth Client (Admin)
310
386
 
@@ -344,6 +420,8 @@ export const registerOAuthClient = mutation({
344
420
  });
345
421
  ```
346
422
 
423
+ </details>
424
+
347
425
  ## Authorization Flow
348
426
 
349
427
  ### Automatic Authorization Handler
@@ -371,7 +449,8 @@ The handler:
371
449
  6. Issues authorization code
372
450
  7. Redirects back to the client with the code
373
451
 
374
- ### Custom Authorization Flow (Advanced)
452
+ <details>
453
+ <summary><strong>Custom Authorization Flow (Advanced)</strong></summary>
375
454
 
376
455
  If you need custom consent UI, you can use the SDK methods directly:
377
456
 
@@ -416,7 +495,10 @@ export const approveAuthorization = mutation({
416
495
  });
417
496
  ```
418
497
 
419
- ## Authorization Management
498
+ </details>
499
+
500
+ <details>
501
+ <summary><strong>Authorization Management</strong></summary>
420
502
 
421
503
  ### List User's Authorized Apps
422
504
 
@@ -465,9 +547,10 @@ export const revokeApp = mutation({
465
547
  });
466
548
  ```
467
549
 
468
- ## Configuration Options
550
+ </details>
469
551
 
470
- ### OAuthConfig
552
+ <details>
553
+ <summary><strong>Configuration Options (OAuthConfig)</strong></summary>
471
554
 
472
555
  ```typescript
473
556
  interface OAuthConfig {
@@ -494,6 +577,10 @@ interface OAuthConfig {
494
577
  // OPTIONAL: Allowed scopes for dynamic client registration
495
578
  allowedScopes?: string[];
496
579
 
580
+ // OPTIONAL: JWT audience claim (default: "convex")
581
+ // Set to "oauth-provider" when using Better Auth to distinguish tokens
582
+ applicationID?: string;
583
+
497
584
  // REQUIRED: Function to get authenticated user ID
498
585
  // Must return a Convex users table Id (string)
499
586
  // Returns null if user is not authenticated
@@ -504,6 +591,8 @@ interface OAuthConfig {
504
591
  }
505
592
  ```
506
593
 
594
+ </details>
595
+
507
596
  ## Token Verification
508
597
 
509
598
  ### In Convex Functions
@@ -523,7 +612,8 @@ export const protectedQuery = query({
523
612
  });
524
613
  ```
525
614
 
526
- ### External Token Verification
615
+ <details>
616
+ <summary><strong>External Token Verification</strong></summary>
527
617
 
528
618
  ```typescript
529
619
  import { verifyAccessToken } from "@codefox-inc/oauth-provider";
@@ -533,6 +623,8 @@ const payload = await verifyAccessToken(
533
623
  {
534
624
  jwks: process.env.JWKS!,
535
625
  siteUrl: process.env.SITE_URL!,
626
+ // If using Better Auth, specify the applicationID
627
+ // applicationID: "oauth-provider",
536
628
  },
537
629
  issuerUrl
538
630
  );
@@ -542,6 +634,33 @@ console.log("Scopes:", payload.scp);
542
634
  console.log("Client ID:", payload.cid);
543
635
  ```
544
636
 
637
+ </details>
638
+
639
+ <details>
640
+ <summary><strong>Distinguishing OAuth Tokens from Session Tokens</strong></summary>
641
+
642
+ When using multiple auth systems (e.g., Better Auth + OAuth Provider), you can distinguish tokens by checking the issuer:
643
+
644
+ ```typescript
645
+ import { isOAuthToken, getOAuthClientId } from "@codefox-inc/oauth-provider";
646
+
647
+ // Option 1: Using helper functions
648
+ const identity = await ctx.auth.getUserIdentity();
649
+ if (isOAuthToken(identity)) {
650
+ const clientId = getOAuthClientId(identity);
651
+ // Handle OAuth token (MCP clients, third-party apps)
652
+ } else {
653
+ // Handle session token (first-party users)
654
+ }
655
+
656
+ // Option 2: Check issuer directly
657
+ if (identity?.issuer?.includes("/oauth")) {
658
+ // This is an OAuth token
659
+ }
660
+ ```
661
+
662
+ </details>
663
+
545
664
  ## Testing
546
665
 
547
666
  ```bash
@@ -23,7 +23,7 @@ export type OAuthProviderConfig = OAuthConfig;
23
23
  *
24
24
  * const oauthProvider = new OAuthProvider(components.oauthProvider, {
25
25
  * privateKey: process.env.OAUTH_PRIVATE_KEY!,
26
- * publicKey: process.env.OAUTH_PUBLIC_KEY!,
26
+ * jwks: process.env.OAUTH_JWKS!,
27
27
  * siteUrl: process.env.SITE_URL!,
28
28
  * });
29
29
  *
@@ -17,7 +17,7 @@ export { generateAuthConfig, createAuthConfig } from "./auth-config.js";
17
17
  *
18
18
  * const oauthProvider = new OAuthProvider(components.oauthProvider, {
19
19
  * privateKey: process.env.OAUTH_PRIVATE_KEY!,
20
- * publicKey: process.env.OAUTH_PUBLIC_KEY!,
20
+ * jwks: process.env.OAUTH_JWKS!,
21
21
  * siteUrl: process.env.SITE_URL!,
22
22
  * });
23
23
  *
@@ -263,7 +263,7 @@ export async function tokenHandler(ctx, request, config, api) {
263
263
  uid: userId,
264
264
  scp: codeData.scopes,
265
265
  cid: clientId,
266
- }, userId, "convex", "1h", config.privateKey, issuerUrl, keyId);
266
+ }, userId, config.applicationID ?? "convex", "1h", config.privateKey, issuerUrl, keyId);
267
267
  // ID Token (OIDC)
268
268
  let idToken;
269
269
  if (codeData.scopes.includes("openid")) {
@@ -362,7 +362,7 @@ export async function tokenHandler(ctx, request, config, api) {
362
362
  uid: userId,
363
363
  scp: accessTokenScopes, // 縮小可能
364
364
  cid: clientId,
365
- }, userId, "convex", "1h", config.privateKey, issuerUrl, keyId);
365
+ }, userId, config.applicationID ?? "convex", "1h", config.privateKey, issuerUrl, keyId);
366
366
  // New Refresh Token (Rotation)
367
367
  const newRefreshToken = crypto.randomUUID();
368
368
  // ID Token
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/component/handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/component/handlers.ts"],"names":[],"mappings":"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"}
@@ -13,11 +13,11 @@ export declare const getClient: import("convex/server").RegisteredQuery<"public"
13
13
  policyUrl?: string | undefined;
14
14
  clientSecret?: string | undefined;
15
15
  isInternal?: boolean | undefined;
16
+ allowedScopes: string[];
16
17
  name: string;
17
18
  clientId: string;
18
19
  type: "public" | "confidential";
19
20
  redirectUris: string[];
20
- allowedScopes: string[];
21
21
  createdAt: number;
22
22
  } | null>>;
23
23
  /**
@@ -53,11 +53,11 @@ export declare const listClients: import("convex/server").RegisteredQuery<"publi
53
53
  tosUrl?: string | undefined;
54
54
  policyUrl?: string | undefined;
55
55
  isInternal?: boolean | undefined;
56
+ allowedScopes: string[];
56
57
  name: string;
57
58
  clientId: string;
58
59
  type: "public" | "confidential";
59
60
  redirectUris: string[];
60
- allowedScopes: string[];
61
61
  createdAt: number;
62
62
  }[]>>;
63
63
  /**
@@ -11,11 +11,11 @@ declare const _default: import("convex/server").SchemaDefinition<{
11
11
  policyUrl?: string | undefined;
12
12
  clientSecret?: string | undefined;
13
13
  isInternal?: boolean | undefined;
14
+ allowedScopes: string[];
14
15
  name: string;
15
16
  clientId: string;
16
17
  type: "public" | "confidential";
17
18
  redirectUris: string[];
18
- allowedScopes: string[];
19
19
  createdAt: number;
20
20
  }, {
21
21
  name: import("convex/values").VString<string, "required">;
@@ -31,7 +31,7 @@ declare const _default: import("convex/server").SchemaDefinition<{
31
31
  allowedScopes: import("convex/values").VArray<string[], import("convex/values").VString<string, "required">, "required">;
32
32
  isInternal: import("convex/values").VBoolean<boolean | undefined, "optional">;
33
33
  createdAt: import("convex/values").VFloat64<number, "required">;
34
- }, "required", "name" | "description" | "logoUrl" | "website" | "tosUrl" | "policyUrl" | "clientId" | "clientSecret" | "type" | "redirectUris" | "allowedScopes" | "isInternal" | "createdAt">, {
34
+ }, "required", "allowedScopes" | "name" | "description" | "logoUrl" | "website" | "tosUrl" | "policyUrl" | "clientId" | "clientSecret" | "type" | "redirectUris" | "isInternal" | "createdAt">, {
35
35
  by_client_id: ["clientId", "_creationTime"];
36
36
  }, {}, {}>;
37
37
  /**
@@ -13,6 +13,7 @@ export interface OAuthConfig {
13
13
  convexSiteUrl?: string;
14
14
  allowedOrigins?: string;
15
15
  allowedScopes?: string[];
16
+ applicationID?: string;
16
17
  getUserId?: (ctx: RunActionCtx & {
17
18
  auth: Auth;
18
19
  }, request: Request) => Promise<string | null> | string | null;
@@ -55,9 +56,11 @@ export declare function getSigningKeyId(config: OAuthConfig): string;
55
56
  */
56
57
  export declare function sign(payload: Record<string, unknown>, subject: string, audience: string, expiresIn: string | number, privateKeyPEM: string, issuer?: string, keyId?: string): Promise<string>;
57
58
  /**
58
- * Verify Access Token using Public Key (PEM) or JWKS
59
+ * Verify Access Token using JWKS from config
59
60
  */
60
- export declare function verifyAccessToken(token: string, publicKeyOrConfig: string | OAuthConfig, issuerUrl: string, expectedAudience?: string): Promise<JWTPayload>;
61
+ export declare function verifyAccessToken(token: string, config: Pick<OAuthConfig, 'jwks'> & {
62
+ applicationID?: string;
63
+ }, issuerUrl: string, expectedAudience?: string): Promise<JWTPayload>;
61
64
  /**
62
65
  * Generate a random code (Authorization Code)
63
66
  */
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/lib/oauth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/lib/oauth.ts"],"names":[],"mappings":"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"}
package/dist/lib/oauth.js CHANGED
@@ -106,21 +106,14 @@ export async function sign(payload, subject, audience, expiresIn, privateKeyPEM,
106
106
  return jwt.sign(privateKey);
107
107
  }
108
108
  /**
109
- * Verify Access Token using Public Key (PEM) or JWKS
109
+ * Verify Access Token using JWKS from config
110
110
  */
111
- export async function verifyAccessToken(token, publicKeyOrConfig, issuerUrl, expectedAudience = "convex") {
112
- let publicKey;
113
- if (typeof publicKeyOrConfig === "string") {
114
- // Legacy: PEM string
115
- publicKey = await getPublicKey(publicKeyOrConfig);
116
- }
117
- else {
118
- // New: OAuthConfig - get key from jwks or publicKey
119
- publicKey = await getVerificationKey(publicKeyOrConfig);
120
- }
111
+ export async function verifyAccessToken(token, config, issuerUrl, expectedAudience) {
112
+ const publicKey = await getVerificationKey(config);
113
+ const audience = expectedAudience ?? config.applicationID ?? "convex";
121
114
  const options = {
122
115
  issuer: issuerUrl,
123
- audience: expectedAudience,
116
+ audience,
124
117
  };
125
118
  const { payload } = typeof publicKey === "function"
126
119
  ? await jwtVerify(token, publicKey, options)
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/lib/oauth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/lib/oauth.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "bugs": {
7
7
  "url": "https://github.com/codefox-inc/convex-oauth-provider/issues"
8
8
  },
9
- "version": "0.2.3",
9
+ "version": "0.3.0",
10
10
  "license": "Apache-2.0",
11
11
  "publishConfig": {
12
12
  "access": "public"
@@ -102,7 +102,7 @@
102
102
  "eslint-plugin-react-hooks": "^7.0.1",
103
103
  "eslint-plugin-react-refresh": "^0.4.26",
104
104
  "globals": "^17.0.0",
105
- "hono": "^4.11.5",
105
+ "hono": "^4.11.7",
106
106
  "npm-run-all2": "8.0.4",
107
107
  "path-exists-cli": "2.0.0",
108
108
  "pkg-pr-new": "^0.0.62",
@@ -49,7 +49,7 @@ export type OAuthProviderConfig = OAuthConfig;
49
49
  *
50
50
  * const oauthProvider = new OAuthProvider(components.oauthProvider, {
51
51
  * privateKey: process.env.OAUTH_PRIVATE_KEY!,
52
- * publicKey: process.env.OAUTH_PUBLIC_KEY!,
52
+ * jwks: process.env.OAUTH_JWKS!,
53
53
  * siteUrl: process.env.SITE_URL!,
54
54
  * });
55
55
  *
@@ -500,7 +500,7 @@ export async function tokenHandler(
500
500
  cid: clientId,
501
501
  },
502
502
  userId,
503
- "convex",
503
+ config.applicationID ?? "convex",
504
504
  "1h",
505
505
  config.privateKey,
506
506
  issuerUrl,
@@ -638,7 +638,7 @@ export async function tokenHandler(
638
638
  cid: clientId as string,
639
639
  },
640
640
  userId,
641
- "convex",
641
+ config.applicationID ?? "convex",
642
642
  "1h",
643
643
  config.privateKey,
644
644
  issuerUrl,
@@ -106,12 +106,13 @@ describe("OAuth JWT and Utilities", () => {
106
106
  "test-audience",
107
107
  "1h",
108
108
  TEST_PRIVATE_KEY,
109
- "https://example.com"
109
+ "https://example.com",
110
+ "test-key-1" // Match the kid in TEST_JWKS
110
111
  );
111
112
 
112
113
  const payload = await verifyAccessToken(
113
114
  token,
114
- TEST_PUBLIC_KEY,
115
+ { jwks: TEST_JWKS },
115
116
  "https://example.com",
116
117
  "test-audience"
117
118
  );
@@ -152,13 +153,81 @@ describe("OAuth JWT and Utilities", () => {
152
153
  "user123",
153
154
  "correct-audience",
154
155
  "1h",
155
- TEST_PRIVATE_KEY
156
+ TEST_PRIVATE_KEY,
157
+ "",
158
+ "test-key-1" // Match the kid in TEST_JWKS
156
159
  );
157
160
 
158
161
  await expect(
159
- verifyAccessToken(token, TEST_PUBLIC_KEY, "", "wrong-audience")
162
+ verifyAccessToken(token, { jwks: TEST_JWKS }, "", "wrong-audience")
160
163
  ).rejects.toThrow();
161
164
  });
165
+
166
+ it("should use applicationID as default audience", async () => {
167
+ const token = await sign(
168
+ {},
169
+ "user123",
170
+ "oauth-provider", // audience matches applicationID
171
+ "1h",
172
+ TEST_PRIVATE_KEY,
173
+ "https://example.com",
174
+ "test-key-1"
175
+ );
176
+
177
+ const payload = await verifyAccessToken(
178
+ token,
179
+ { jwks: TEST_JWKS, applicationID: "oauth-provider" },
180
+ "https://example.com"
181
+ // No expectedAudience - should use applicationID
182
+ );
183
+
184
+ expect(payload.sub).toBe("user123");
185
+ expect(payload.aud).toBe("oauth-provider");
186
+ });
187
+
188
+ it("should default to 'convex' when applicationID is not set", async () => {
189
+ const token = await sign(
190
+ {},
191
+ "user123",
192
+ "convex", // default audience
193
+ "1h",
194
+ TEST_PRIVATE_KEY,
195
+ "https://example.com",
196
+ "test-key-1"
197
+ );
198
+
199
+ const payload = await verifyAccessToken(
200
+ token,
201
+ { jwks: TEST_JWKS }, // No applicationID
202
+ "https://example.com"
203
+ // No expectedAudience - should default to "convex"
204
+ );
205
+
206
+ expect(payload.sub).toBe("user123");
207
+ expect(payload.aud).toBe("convex");
208
+ });
209
+
210
+ it("should prefer expectedAudience over applicationID", async () => {
211
+ const token = await sign(
212
+ {},
213
+ "user123",
214
+ "explicit-audience", // matches expectedAudience
215
+ "1h",
216
+ TEST_PRIVATE_KEY,
217
+ "https://example.com",
218
+ "test-key-1"
219
+ );
220
+
221
+ const payload = await verifyAccessToken(
222
+ token,
223
+ { jwks: TEST_JWKS, applicationID: "oauth-provider" },
224
+ "https://example.com",
225
+ "explicit-audience" // This should take precedence
226
+ );
227
+
228
+ expect(payload.sub).toBe("user123");
229
+ expect(payload.aud).toBe("explicit-audience");
230
+ });
162
231
  });
163
232
 
164
233
  describe("JWKS Functions", () => {
package/src/lib/oauth.ts CHANGED
@@ -21,6 +21,7 @@ export interface OAuthConfig {
21
21
  convexSiteUrl?: string; // CONVEX_SITE_URL (optional)
22
22
  allowedOrigins?: string; // ALLOWED_ORIGINS (comma-separated, optional)
23
23
  allowedScopes?: string[]; // Allowed scopes for dynamic client registration
24
+ applicationID?: string; // JWT audience (default: "convex", use "oauth-provider" with Better Auth)
24
25
  getUserId?: (ctx: RunActionCtx & { auth: Auth }, request: Request) => Promise<string | null> | string | null;
25
26
  checkAuthorization?: (ctx: RunActionCtx & { auth: Auth }, userId: string, clientId?: string) => Promise<boolean>;
26
27
  allowDynamicClientRegistration?: boolean;
@@ -190,27 +191,20 @@ export async function sign(
190
191
  }
191
192
 
192
193
  /**
193
- * Verify Access Token using Public Key (PEM) or JWKS
194
+ * Verify Access Token using JWKS from config
194
195
  */
195
196
  export async function verifyAccessToken(
196
197
  token: string,
197
- publicKeyOrConfig: string | OAuthConfig,
198
+ config: Pick<OAuthConfig, 'jwks'> & { applicationID?: string },
198
199
  issuerUrl: string,
199
- expectedAudience: string = "convex"
200
+ expectedAudience?: string
200
201
  ): Promise<JWTPayload> {
201
- let publicKey: KeyLike | ReturnType<typeof createLocalJWKSet>;
202
-
203
- if (typeof publicKeyOrConfig === "string") {
204
- // Legacy: PEM string
205
- publicKey = await getPublicKey(publicKeyOrConfig);
206
- } else {
207
- // New: OAuthConfig - get key from jwks or publicKey
208
- publicKey = await getVerificationKey(publicKeyOrConfig);
209
- }
202
+ const publicKey = await getVerificationKey(config as OAuthConfig);
203
+ const audience = expectedAudience ?? config.applicationID ?? "convex";
210
204
 
211
205
  const options = {
212
206
  issuer: issuerUrl,
213
- audience: expectedAudience,
207
+ audience,
214
208
  };
215
209
  const { payload } = typeof publicKey === "function"
216
210
  ? await jwtVerify(token, publicKey, options)