diff --git a/src/frontegg-oauth-client.ts b/src/frontegg-oauth-client.ts index 929c1f4..f48cf57 100644 --- a/src/frontegg-oauth-client.ts +++ b/src/frontegg-oauth-client.ts @@ -297,11 +297,25 @@ export class FronteggOAuthClient { }) const json: unknown = await response.json() - const data = GET_FRONTEGG_TOKEN_RESPONSE_SCHEMA.parse(json) - this.accessToken = data.access_token - this.refreshToken = data.refresh_token - this.tokenExpirationTime = calculateTokenExpirationTime(data.expires_in) - return this.accessToken + try { + const data = GET_FRONTEGG_TOKEN_RESPONSE_SCHEMA.parse(json) + + this.accessToken = data.access_token + this.refreshToken = data.refresh_token + this.tokenExpirationTime = calculateTokenExpirationTime(data.expires_in) + return this.accessToken + } catch (error: unknown) { + throw new FronteggError({ + text: 'Error while parsing Frontegg response.', + status: 500, + url: `${this.baseUrl}/frontegg/oauth/authorize/silent`, + fronteggTraceId: response.headers.get('frontegg-trace-id') ?? 'undefined', + body: { + responseKeys: typeof json === 'object' && json !== null ? Object.keys(json) : undefined, + error, + }, + }) + } } /**