@schemavaults/auth-client-sdk 0.17.3 → 0.18.6

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.
Files changed (38) hide show
  1. package/README.md +35 -0
  2. package/dist/auth-client.d.ts +9 -1
  3. package/dist/auth-client.js +22 -3
  4. package/dist/auth-client.js.map +1 -1
  5. package/dist/generated/version.d.ts +1 -1
  6. package/dist/generated/version.js +1 -1
  7. package/dist/lib/exchange-auth-tokens.d.ts +16 -6
  8. package/dist/lib/exchange-auth-tokens.js +119 -97
  9. package/dist/lib/exchange-auth-tokens.js.map +1 -1
  10. package/dist/lib/handle-successful-authentication.d.ts +20 -6
  11. package/dist/lib/handle-successful-authentication.js +170 -131
  12. package/dist/lib/handle-successful-authentication.js.map +1 -1
  13. package/dist/lib/handle-successful-exchange-auth-tokens-response.d.ts +11 -7
  14. package/dist/lib/handle-successful-exchange-auth-tokens-response.js +19 -28
  15. package/dist/lib/handle-successful-exchange-auth-tokens-response.js.map +1 -1
  16. package/dist/lib/oidc/index.d.ts +9 -0
  17. package/dist/lib/oidc/index.js +7 -0
  18. package/dist/lib/oidc/index.js.map +1 -0
  19. package/dist/lib/oidc/is-insecure-transport-allowed.d.ts +8 -0
  20. package/dist/lib/oidc/is-insecure-transport-allowed.js +14 -0
  21. package/dist/lib/oidc/is-insecure-transport-allowed.js.map +1 -0
  22. package/dist/lib/oidc/normalize-oidc-issuer.d.ts +8 -0
  23. package/dist/lib/oidc/normalize-oidc-issuer.js +19 -0
  24. package/dist/lib/oidc/normalize-oidc-issuer.js.map +1 -0
  25. package/dist/lib/oidc/oidc-client-configuration.d.ts +43 -0
  26. package/dist/lib/oidc/oidc-client-configuration.js +68 -0
  27. package/dist/lib/oidc/oidc-client-configuration.js.map +1 -0
  28. package/dist/lib/oidc/oidc-token-error.d.ts +16 -0
  29. package/dist/lib/oidc/oidc-token-error.js +54 -0
  30. package/dist/lib/oidc/oidc-token-error.js.map +1 -0
  31. package/dist/lib/oidc/token-endpoint-response-to-tokens-record.d.ts +42 -0
  32. package/dist/lib/oidc/token-endpoint-response-to-tokens-record.js +72 -0
  33. package/dist/lib/oidc/token-endpoint-response-to-tokens-record.js.map +1 -0
  34. package/dist/lib/oidc/uid-from-oidc-sub-claim.d.ts +13 -0
  35. package/dist/lib/oidc/uid-from-oidc-sub-claim.js +32 -0
  36. package/dist/lib/oidc/uid-from-oidc-sub-claim.js.map +1 -0
  37. package/dist/types/ISchemaVaultsAuthClient.d.ts +1 -1
  38. package/package.json +4 -3
package/README.md CHANGED
@@ -8,7 +8,42 @@ See the downstream package [@schemavaults/auth-react-provider](https://github.co
8
8
 
9
9
  See the SchemaVaults CLI for an example of usage within a command line application: [@schemavaults/cli](https://github.com/schemavaults/cli)
10
10
 
11
+ ## How tokens are acquired
12
+
13
+ The SDK talks to the auth server's **standard OIDC surface** through the
14
+ [`openid-client`](https://github.com/panva/openid-client) package:
15
+
16
+ - Authorization codes and refresh tokens are redeemed at
17
+ `POST /api/oidc/token` (RFC 6749 form-encoded requests). Redirect
18
+ callbacks go through `openid-client`'s `authorizationCodeGrant()`, which
19
+ verifies the OAuth2 `state`, the RFC 9207 `iss` parameter, PKCE, and the
20
+ id_token `nonce`. Pass the callback's `iss` query parameter as the sixth
21
+ argument of `handleSuccessfulAuthentication()` to enable the issuer check.
22
+ - Access tokens for API servers are requested with the RFC 8707 `resource`
23
+ parameter — one access token per token request. The code grant carries the
24
+ first configured default audience; remaining default audiences are
25
+ acquired through follow-up refresh grants, and `acquireAccessToken()`
26
+ fetches any other audience on demand.
27
+ - When the adapter reports `doesSupportHttpOnlyRefreshToken()`, the SDK asks
28
+ the token endpoint for `refresh_token_delivery=http_only_cookie`: the
29
+ refresh token is set as an HTTP-only cookie on the auth server's domain and
30
+ never exposed to JavaScript; the SDK only tracks its expiry through the
31
+ `refresh_token_expires_in` response field. Otherwise the refresh token is
32
+ inlined and stored through the adapter.
33
+ - The platform's full `UserData` (`currentUser`) is synced from
34
+ `GET /api/auth/whoami/[client_app_id]` after every login and refresh.
35
+
36
+ The server metadata is the auth server's own discovery document, built
37
+ locally with `buildOidcProviderMetadata()` from `@schemavaults/auth-common`
38
+ (the same function the server serves at `/.well-known/openid-configuration`),
39
+ so no discovery request is made and the SDK cannot drift from what the
40
+ server advertises. Plain-HTTP auth servers are supported only when the
41
+ client's `app_env` is `development` or `test`; in `staging` and
42
+ `production` an `http://` auth server URL is rejected before any token
43
+ request is made.
44
+
11
45
  ## Dependencies
12
46
 
13
47
  - [@schemavaults/auth](https://github.com/schemavaults/auth)
14
48
  - [@schemavaults/app-definitions](https://github.com/schemavaults/app-definitions)
49
+ - [openid-client](https://github.com/panva/openid-client)
@@ -72,7 +72,15 @@ export declare class SchemaVaultsAuthClient extends EventTarget implements ISche
72
72
  private get isClientForAuthServer();
73
73
  private get defaultTokenAudiences();
74
74
  loadSavedAuthorizationCodeVerifiers(): Promise<Record<number, string>>;
75
- handleSuccessfulAuthentication(authorization_code: string, challenge_time: number, code_verifier?: string, received_state?: string | null, expected_nonce?: string | null): Promise<void>;
75
+ handleSuccessfulAuthentication(authorization_code: string, challenge_time: number, code_verifier?: string, received_state?: string | null, expected_nonce?: string | null, received_iss?: string | null): Promise<void>;
76
+ /**
77
+ * Loads the signed-in user's data from the auth server's whoami
78
+ * endpoint, authenticated with the stored refresh token (cookie or
79
+ * bearer). The OIDC token responses carry identity claims only; the
80
+ * platform's full `UserData` is synced from here after every login
81
+ * and token refresh.
82
+ */
83
+ private fetchUserDataFromServer;
76
84
  logout(): Promise<void>;
77
85
  hasHttpOnlyRefreshToken(): boolean;
78
86
  get auth_server_url(): string;
@@ -474,7 +474,7 @@ export class SchemaVaultsAuthClient extends EventTarget {
474
474
  const codeVerifiers = this.adapter.loadCodeVerifiers();
475
475
  return codeVerifiers;
476
476
  } // loadSavedAuthorizationCodeVerifiers()
477
- async handleSuccessfulAuthentication(authorization_code, challenge_time, code_verifier, received_state, expected_nonce) {
477
+ async handleSuccessfulAuthentication(authorization_code, challenge_time, code_verifier, received_state, expected_nonce, received_iss) {
478
478
  // Recompute the `redirect_uri` we sent at issuance so the token
479
479
  // endpoint's exact-string binding check has a value to match. In the
480
480
  // redirect flow the SDK built `redirect_uri = absolute(authorize_uri)`
@@ -496,6 +496,7 @@ export class SchemaVaultsAuthClient extends EventTarget {
496
496
  challenge_time,
497
497
  code_verifier,
498
498
  received_state: received_state ?? null,
499
+ received_iss: received_iss ?? null,
499
500
  expected_nonce: expected_nonce ?? null,
500
501
  redirect_uri,
501
502
  loadCodeVerifier: this.loadCodeVerifier.bind(this),
@@ -508,12 +509,28 @@ export class SchemaVaultsAuthClient extends EventTarget {
508
509
  storeUserData: this.storeUserData.bind(this),
509
510
  storeRefreshToken: this.storeRefreshToken.bind(this),
510
511
  storeMultipleAccessTokens: this.storeMultipleAccessTokens.bind(this),
512
+ exchangeAuthTokens: this.exchangeAuthTokens.bind(this),
513
+ fetchUserData: this.fetchUserDataFromServer.bind(this),
511
514
  environment: this.environment,
512
515
  debug: this.DEBUG,
513
516
  triggerAuthStateChanged: this.triggerAuthStateChanged.bind(this),
514
517
  defaultTokenAudiences: this.defaultTokenAudiences,
515
518
  });
516
519
  } // handleSuccessfulAuthentication()
520
+ /**
521
+ * Loads the signed-in user's data from the auth server's whoami
522
+ * endpoint, authenticated with the stored refresh token (cookie or
523
+ * bearer). The OIDC token responses carry identity claims only; the
524
+ * platform's full `UserData` is synced from here after every login
525
+ * and token refresh.
526
+ */
527
+ async fetchUserDataFromServer() {
528
+ return await checkIfAuthenticatedWithServer({
529
+ adapter: this.adapter,
530
+ auth_server_uri: this.auth_server_uri,
531
+ client_app_id: this.app_id,
532
+ });
533
+ }
517
534
  async logout() {
518
535
  if (this.debug) {
519
536
  console.log("[SchemaVaultsAuthClient] logout()");
@@ -886,10 +903,11 @@ export class SchemaVaultsAuthClient extends EventTarget {
886
903
  const userData = this.getUserData();
887
904
  return userData;
888
905
  }
889
- async handleSuccessfulExchangeAuthTokensResponse(tokens_response) {
906
+ async handleSuccessfulExchangeAuthTokensResponse(tokens) {
890
907
  return await handleSuccessfulExchangeAuthTokensResponse({
891
- tokens_response,
908
+ tokens,
892
909
  storeMultipleAccessTokens: this.storeMultipleAccessTokens.bind(this),
910
+ fetchUserData: this.fetchUserDataFromServer.bind(this),
893
911
  storeUserData: this.storeUserData.bind(this),
894
912
  triggerAuthStateChanged: this.triggerAuthStateChanged.bind(this),
895
913
  adapter: this.adapter,
@@ -926,6 +944,7 @@ export class SchemaVaultsAuthClient extends EventTarget {
926
944
  handleSuccessfulExchangeAuthTokensResponse: this.handleSuccessfulExchangeAuthTokensResponse.bind(this),
927
945
  client_app_id: this.app_id,
928
946
  adapter: this.adapter,
947
+ fetchUserData: this.fetchUserDataFromServer.bind(this),
929
948
  auth_server_uri: this.auth_server_uri,
930
949
  auth_server_app_id: this._auth_server_app_id,
931
950
  });
@@ -1 +1 @@
1
- {"version":3,"file":"auth-client.js","sourceRoot":"","sources":["../src/auth-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-client.js","sourceRoot":"","sources":["../src/auth-client.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const AUTH_CLIENT_SDK_VERSION: "0.17.3";
1
+ export declare const AUTH_CLIENT_SDK_VERSION: "0.18.6";
2
2
  export default AUTH_CLIENT_SDK_VERSION;
@@ -1,4 +1,4 @@
1
1
  // Auto-generated by generate-version.sh — do not edit
2
- export const AUTH_CLIENT_SDK_VERSION = "0.17.3";
2
+ export const AUTH_CLIENT_SDK_VERSION = "0.18.6";
3
3
  export default AUTH_CLIENT_SDK_VERSION;
4
4
  //# sourceMappingURL=version.js.map
@@ -1,22 +1,32 @@
1
1
  import type { ISchemaVaultsAuthClientAdapter } from "../types/ISchemaVaultsAuthClientAdapter";
2
- import type { AppId, SchemaVaultsAppEnvironment } from "@schemavaults/app-definitions";
3
- import { type RefreshToken, type RequestTokensResult, type SuccessfullyGeneratedTokensRecord } from "@schemavaults/auth-common";
2
+ import { type AppId, type SchemaVaultsAppEnvironment } from "@schemavaults/app-definitions";
3
+ import { type RefreshToken, type SuccessfullyGeneratedTokensRecord, type UserData } from "@schemavaults/auth-common";
4
4
  export interface IExchangeAuthTokensOpts {
5
5
  refreshToken: RefreshToken | "AS_HTTP_ONLY_COOKIE";
6
+ /**
7
+ * Audience(s) to mint access tokens for. An empty list is a
8
+ * rotation-only request: the refresh token is rotated (and user data
9
+ * re-synced) without minting an access token for any API server.
10
+ */
6
11
  audience: string | string[];
7
12
  auth_server_uri: string;
8
13
  /**
9
14
  * The auth server deployment's own app id (white-label deployments use a
10
- * custom value). Injected into audience schema validation because browser
11
- * bundles can't resolve the SCHEMAVAULTS_AUTH_SERVER_APP_ID env var.
15
+ * custom value). Kept for parity with the code-grant path.
12
16
  */
13
17
  auth_server_app_id?: AppId;
14
18
  environment: SchemaVaultsAppEnvironment;
15
19
  debug: boolean;
16
20
  client_app_id: AppId;
17
21
  adapter: ISchemaVaultsAuthClientAdapter;
18
- handleSuccessfulExchangeAuthTokensResponse: (response: RequestTokensResult) => Promise<SuccessfullyGeneratedTokensRecord>;
22
+ /**
23
+ * Loads the signed-in user's data from the auth server (whoami) using
24
+ * the currently stored refresh token. Used to resolve the user id for
25
+ * the token record when no user data is cached yet.
26
+ */
27
+ fetchUserData: () => Promise<UserData | null>;
28
+ handleSuccessfulExchangeAuthTokensResponse: (tokens: SuccessfullyGeneratedTokensRecord) => Promise<SuccessfullyGeneratedTokensRecord>;
19
29
  logout: () => Promise<void>;
20
30
  }
21
- export declare function exchangeAuthTokens({ refreshToken, audience, debug, environment, auth_server_uri, auth_server_app_id, client_app_id, adapter, handleSuccessfulExchangeAuthTokensResponse, logout, }: IExchangeAuthTokensOpts): Promise<SuccessfullyGeneratedTokensRecord>;
31
+ export declare function exchangeAuthTokens({ refreshToken, audience, debug, environment, auth_server_uri, client_app_id, adapter, fetchUserData, handleSuccessfulExchangeAuthTokensResponse, logout, }: IExchangeAuthTokensOpts): Promise<SuccessfullyGeneratedTokensRecord>;
22
32
  export default exchangeAuthTokens;
@@ -1,48 +1,36 @@
1
- import { createRefreshTokenPOSTBodySchema, createRequestTokensResultSchema, } from "@schemavaults/auth-common";
2
- import { z } from "zod";
3
- export async function exchangeAuthTokens({ refreshToken, audience, debug, environment, auth_server_uri, auth_server_app_id, client_app_id, adapter, handleSuccessfulExchangeAuthTokensResponse, logout, }) {
1
+ // exchange-auth-tokens.ts
2
+ //
3
+ // Redeems a refresh token at the auth server's standard OIDC token
4
+ // endpoint (/api/oidc/token, grant_type=refresh_token) via
5
+ // `openid-client`. The endpoint mints ONE access token per request
6
+ // (RFC 8707 `resource`), so a multi-audience exchange is a sequence of
7
+ // refresh grants — each rotating the refresh token, so each subsequent
8
+ // grant presents the token the previous one returned.
9
+ import * as oidc from "openid-client";
10
+ import { OIDC_USERINFO_AUDIENCE_ID, } from "@schemavaults/app-definitions";
11
+ import { OIDC_TOKEN_REFRESH_TOKEN_DELIVERY_PARAM, OIDC_TOKEN_RESOURCE_PARAM, } from "@schemavaults/auth-common";
12
+ import { classifyOidcTokenError, createOidcClientConfiguration, normalizeOidcIssuer, tokenEndpointResponseToTokensRecord, } from "./oidc";
13
+ function normalizeAudiences(audience) {
14
+ if (Array.isArray(audience)) {
15
+ return audience.filter((a) => typeof a === "string" && a.length > 0);
16
+ }
17
+ return typeof audience === "string" && audience.length > 0 ? [audience] : [];
18
+ }
19
+ export async function exchangeAuthTokens({ refreshToken, audience, debug, environment, auth_server_uri, client_app_id, adapter, fetchUserData, handleSuccessfulExchangeAuthTokensResponse, logout, }) {
4
20
  if (debug) {
5
21
  console.log("[SchemaVaultsAuthClient] Attempting to send request to exchange refresh token for access token...");
6
22
  }
7
- const exchange_refresh_token_endpoint = new URL(`/api/auth/token/refresh_token/${client_app_id}`, auth_server_uri);
8
- // An empty audience list is a rotation-only request: the server always
9
- // rotates the refresh token, so the exchange still yields a fresh
10
- // refresh token (and updated user data) even when no access tokens are
11
- // requested.
12
- const refreshTokenPOSTBodySchema = createRefreshTokenPOSTBodySchema(z, environment, { auth_server_url: auth_server_uri, auth_server_app_id });
13
- // Exchange the authorization code for an access token
14
- let request_body;
15
- try {
16
- const parsed = await refreshTokenPOSTBodySchema.safeParseAsync({
17
- grant_type: "refresh_token",
18
- client_app_id,
19
- audience: audience,
20
- });
21
- if (!parsed.success) {
22
- console.error(parsed.error);
23
- throw new Error("Failed to parse tokens from exchange auth tokens POST request!");
24
- }
25
- request_body = parsed.data;
26
- }
27
- catch (e) {
28
- if (debug) {
29
- console.error("Failed to prepare request body for authorization grant request: ", e);
30
- }
31
- throw new Error("Failed to prepare request body for authorization grant request");
32
- }
33
- const exchangeAuthTokensReqHeaders = {
34
- "Content-Type": "application/json",
35
- };
36
23
  if (!refreshToken) {
37
24
  throw new Error("Did not receive a refresh token to exchange for access token!");
38
25
  }
26
+ // ---- Which refresh token, and how is it presented? -----------------
27
+ let useHttpOnlyCookie;
39
28
  if (typeof refreshToken === "object" && refreshToken.type === "refresh") {
40
29
  if (typeof refreshToken.token !== "string" ||
41
30
  refreshToken.token.length === 0) {
42
31
  throw new TypeError("Expected 'token' to be a non-empty string!");
43
32
  }
44
- exchangeAuthTokensReqHeaders["Authorization"] =
45
- `Bearer ${refreshToken.token}`;
33
+ useHttpOnlyCookie = false;
46
34
  }
47
35
  else if (typeof refreshToken === "string" &&
48
36
  refreshToken === "AS_HTTP_ONLY_COOKIE") {
@@ -52,91 +40,125 @@ export async function exchangeAuthTokens({ refreshToken, audience, debug, enviro
52
40
  if (!adapter.doesSupportHttpOnlyRefreshToken()) {
53
41
  throw new Error("Adapter does not support HTTP-only refresh tokens! Adapter method 'doesSupportHttpOnlyRefreshToken' returned falsy result!");
54
42
  }
43
+ useHttpOnlyCookie = true;
55
44
  }
56
45
  else {
57
46
  throw new Error("Did not receive a valid refresh token (or valid method of acquiring refresh token)");
58
47
  }
59
- if (debug) {
60
- console.log("[SchemaVaultsAuthClient::exchangeAuthTokens()] " +
61
- `Sending POST request to "${exchange_refresh_token_endpoint.toString()}" with body & headers:`, request_body, exchangeAuthTokensReqHeaders);
48
+ // ---- Resolve the user id for the token record ----------------------
49
+ // The refresh grant response carries no id_token (OIDC Core §12.2), so
50
+ // the subject comes from the cached user data — or, on a cold cache,
51
+ // from the auth server's whoami endpoint (authenticated with the
52
+ // refresh token we are about to rotate).
53
+ let uid = adapter.getUserData()?.uid;
54
+ if (!uid) {
55
+ const user = await fetchUserData();
56
+ if (!user) {
57
+ await logout();
58
+ throw new Error("Session expired: the auth server no longer recognizes this session");
59
+ }
60
+ uid = user.uid;
62
61
  }
63
- let tokens_response_data;
64
- try {
62
+ // ---- The grant(s) --------------------------------------------------
63
+ const config = createOidcClientConfiguration({
64
+ auth_server_url: auth_server_uri,
65
+ client_app_id,
66
+ environment,
67
+ adapter,
68
+ });
69
+ const issuer = normalizeOidcIssuer(auth_server_uri);
70
+ // An empty audience list is a rotation-only request: one grant with no
71
+ // `resource` (its access token is for the reserved userinfo audience).
72
+ const audiences = normalizeAudiences(audience);
73
+ const grants = audiences.length > 0 ? audiences : [null];
74
+ const access = {};
75
+ let current = refreshToken;
76
+ let last_record;
77
+ for (const resource of grants) {
78
+ const parameters = new URLSearchParams();
79
+ if (resource) {
80
+ parameters.set(OIDC_TOKEN_RESOURCE_PARAM, resource);
81
+ }
82
+ if (useHttpOnlyCookie) {
83
+ parameters.set(OIDC_TOKEN_REFRESH_TOKEN_DELIVERY_PARAM, "http_only_cookie");
84
+ }
65
85
  if (debug) {
66
- console.log(`POST => ${exchange_refresh_token_endpoint}`);
86
+ console.log("[SchemaVaultsAuthClient::exchangeAuthTokens()] " +
87
+ `Sending refresh grant to "${config.serverMetadata().token_endpoint}" with parameters:`, Object.fromEntries(parameters.entries()), useHttpOnlyCookie
88
+ ? "(refresh token presented via HTTP-only cookie)"
89
+ : "(refresh token presented inline)");
67
90
  }
68
- const response = await adapter.fetch(exchange_refresh_token_endpoint.toString(), {
69
- body: JSON.stringify(request_body),
70
- method: "POST",
71
- headers: exchangeAuthTokensReqHeaders,
72
- credentials: "include",
73
- });
74
- if (!response || typeof response !== "object" || response.status !== 200) {
75
- let serverMessage = "unknown error";
76
- try {
77
- const errorBody = await response.json();
78
- if (errorBody &&
79
- typeof errorBody === "object" &&
80
- "message" in errorBody &&
81
- typeof errorBody.message === "string") {
82
- serverMessage = errorBody.message;
91
+ let response;
92
+ try {
93
+ if (useHttpOnlyCookie) {
94
+ // The refresh token lives in the auth server's HTTP-only cookie,
95
+ // which the adapter's fetch sends with the request; the form
96
+ // therefore carries no `refresh_token` parameter.
97
+ response = await oidc.genericGrantRequest(config, "refresh_token", parameters);
98
+ }
99
+ else {
100
+ if (typeof current !== "object") {
101
+ throw new Error("Refresh token rotation switched to cookie delivery mid-exchange");
83
102
  }
103
+ response = await oidc.refreshTokenGrant(config, current.token, parameters);
84
104
  }
85
- catch {
86
- // Response body may not be valid JSON
105
+ }
106
+ catch (e) {
107
+ const classified = classifyOidcTokenError(e);
108
+ if (debug) {
109
+ console.error("[exchangeAuthTokens] Refresh grant failed: ", e);
87
110
  }
88
- if (response.status === 403 || response.status === 401) {
89
- console.error(`${response.status} error response from exchange token attempt, client is not logged in! Server: ${serverMessage}`);
111
+ if (classified.session_lost) {
112
+ console.error(`Refresh grant rejected by the auth server (${classified.message}); client is no longer logged in.`);
90
113
  await logout();
91
- const sessionExpiredMsg = `Session expired (HTTP ${response.status}): ${serverMessage}`;
92
- // Guard: downstream error handlers (acquire-access-token.ts, etc.) detect session
93
- // expiry by checking if the error message includes "expired". If the message format
94
- // is ever refactored and that keyword is accidentally removed, the entire expired-session
95
- // detection chain breaks silently. This check ensures the contract is always upheld.
96
- if (!sessionExpiredMsg.toLowerCase().includes("expired")) {
97
- throw new Error("Session expired");
98
- }
99
- throw new Error(sessionExpiredMsg);
114
+ // Downstream handlers (acquire-access-token.ts, etc.) detect an
115
+ // unrecoverable session by the "expired" keyword in the message.
116
+ throw new Error("Refresh token has expired!", { cause: e });
100
117
  }
101
- throw new Error(`Token exchange failed (HTTP ${response.status}): ${serverMessage}`);
118
+ throw new Error(`Token exchange failed: ${classified.message}`, {
119
+ cause: e,
120
+ });
102
121
  }
103
- const parsed_tokens_result = await createRequestTokensResultSchema(z, environment, { auth_server_url: auth_server_uri, auth_server_app_id }).safeParseAsync(await response.json());
104
- if (!parsed_tokens_result.success) {
105
- console.error("Failed to parse tokens response from server: ", parsed_tokens_result.error);
106
- throw new Error("Failed to parse tokens response from server!");
122
+ let record;
123
+ try {
124
+ record = tokenEndpointResponseToTokensRecord({
125
+ response,
126
+ audience: resource ?? OIDC_USERINFO_AUDIENCE_ID,
127
+ uid,
128
+ auth_server_url: issuer,
129
+ });
107
130
  }
108
- tokens_response_data = parsed_tokens_result.data;
109
- }
110
- catch (e) {
111
- if (debug) {
112
- console.error("[exchangeAuthTokens] FETCH FAILED: ", e);
131
+ catch (e) {
132
+ console.error("Failed to parse tokens response from server: ", e);
133
+ throw new Error("Failed to parse tokens response from server!", {
134
+ cause: e,
135
+ });
113
136
  }
114
- if (e instanceof Error) {
115
- const eMsg = e.message.toLowerCase();
116
- if (eMsg.includes("expired") ||
117
- eMsg.includes("jwtexpired") ||
118
- eMsg.includes("err_jwt_expired")) {
119
- console.error("Refresh token appears to have expired!");
120
- throw new Error("Refresh token has expired!");
121
- }
137
+ Object.assign(access, record.access ?? {});
138
+ if (typeof record.refresh === "object") {
139
+ // Rotation: the next grant must present the replacement token.
140
+ current = record.refresh;
122
141
  }
123
- throw e instanceof Error
124
- ? e
125
- : new Error("Failed to exchange refresh token for access token");
142
+ last_record = record;
126
143
  }
144
+ if (!last_record) {
145
+ throw new Error("No refresh grant was performed");
146
+ }
147
+ const merged = {
148
+ access,
149
+ refresh: last_record.refresh,
150
+ ...(typeof last_record.refresh_token_expiry === "number"
151
+ ? { refresh_token_expiry: last_record.refresh_token_expiry }
152
+ : {}),
153
+ };
127
154
  try {
128
- // Parse tokens from response JSON body
129
- return await handleSuccessfulExchangeAuthTokensResponse(tokens_response_data);
155
+ return await handleSuccessfulExchangeAuthTokensResponse(merged);
130
156
  }
131
157
  catch (e) {
132
158
  if (debug) {
133
- console.log("typeof e === ", typeof e);
134
- if (e instanceof Error) {
135
- console.error("Parse tokens error message: ", e.message);
136
- }
137
- console.error("Failed to parse authentication tokens from exchange tokens POST request: ", e);
159
+ console.error("Failed to store authentication tokens from refresh grant: ", e);
138
160
  }
139
- throw new Error("Failed to parse authentication tokens from exchange tokens POST request!");
161
+ throw new Error("Failed to parse authentication tokens from exchange tokens POST request!", { cause: e });
140
162
  }
141
163
  }
142
164
  export default exchangeAuthTokens;