Skip to content

Commit d033a0d

Browse files
committed
feat: add handling bad responses from token endpoint
1 parent 4f0e74b commit d033a0d

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

lib/utils/exchangeAuthCode.test.ts

+37
Original file line numberDiff line numberDiff line change
@@ -191,4 +191,41 @@ describe("exhangeAuthCode", () => {
191191
},
192192
});
193193
});
194+
195+
196+
it("set the framework and version on header", async () => {
197+
const store = new MemoryStorage();
198+
setActiveStorage(store);
199+
200+
const state = "state";
201+
202+
await store.setItems({
203+
[StorageKeys.state]: state,
204+
});
205+
206+
frameworkSettings.framework = "Framework";
207+
frameworkSettings.frameworkVersion = "Version";
208+
209+
const input = "hello";
210+
211+
const urlParams = new URLSearchParams();
212+
urlParams.append("code", input);
213+
urlParams.append("state", state);
214+
urlParams.append("client_id", "test");
215+
216+
fetchMock.mockOnce({ status: 500, ok: false, body: "error" });
217+
218+
const result = await exchangeAuthCode({
219+
urlParams,
220+
domain: "http://test.kinde.com",
221+
clientId: "test",
222+
redirectURL: "http://test.kinde.com",
223+
});
224+
225+
expect(result).toStrictEqual({
226+
success: false,
227+
error: "Token exchange failed: 500 - error",
228+
});
229+
230+
});
194231
});

lib/utils/exchangeAuthCode.ts

+8
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,14 @@ export const exchangeAuthCode = async ({
8787
redirect_uri: redirectURL,
8888
}),
8989
});
90+
if (!response?.ok) {
91+
const errorText = await response.text();
92+
console.error('Token exchange failed:', response.status, errorText);
93+
return {
94+
success: false,
95+
error: `Token exchange failed: ${response.status} - ${errorText}`,
96+
};
97+
}
9098

9199
const data: {
92100
access_token: string;

0 commit comments

Comments
 (0)