Skip to content

Commit c0e9ef6

Browse files
committed
Add url argument to authToTokenEndpoint.
1 parent 9ef072f commit c0e9ef6

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

src/client/auth.test.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -480,9 +480,10 @@ describe("OAuth Authorization", () => {
480480
});
481481

482482
it("exchanges code for tokens with auth", async () => {
483-
mockProvider.authToTokenEndpoint = function(headers: Headers, params: URLSearchParams) {
483+
mockProvider.authToTokenEndpoint = function(url: URL, headers: Headers, params: URLSearchParams) {
484484
headers.set("Authorization", "Basic " + btoa(validClientInfo.client_id + ":" + validClientInfo.client_secret));
485-
params.set("example_param", "example_value")
485+
params.set("example_url", url.toString());
486+
params.set("example_param", "example_value");
486487
};
487488

488489
mockFetch.mockResolvedValueOnce({
@@ -517,6 +518,7 @@ describe("OAuth Authorization", () => {
517518
expect(body.get("code_verifier")).toBe("verifier123");
518519
expect(body.get("client_id")).toBe("client123");
519520
expect(body.get("redirect_uri")).toBe("http://localhost:3000/callback");
521+
expect(body.get("example_url")).toBe("https://auth.example.com/token");
520522
expect(body.get("example_param")).toBe("example_value");
521523
expect(body.get("client_secret")).toBeUndefined;
522524
});
@@ -624,9 +626,10 @@ describe("OAuth Authorization", () => {
624626
});
625627

626628
it("exchanges refresh token for new tokens with auth", async () => {
627-
mockProvider.authToTokenEndpoint = function(headers: Headers, params: URLSearchParams) {
629+
mockProvider.authToTokenEndpoint = function(url: URL, headers: Headers, params: URLSearchParams) {
628630
headers.set("Authorization", "Basic " + btoa(validClientInfo.client_id + ":" + validClientInfo.client_secret));
629-
params.set("example_param", "example_value")
631+
params.set("example_url", url.toString());
632+
params.set("example_param", "example_value");
630633
};
631634

632635
mockFetch.mockResolvedValueOnce({
@@ -657,6 +660,7 @@ describe("OAuth Authorization", () => {
657660
expect(body.get("grant_type")).toBe("refresh_token");
658661
expect(body.get("refresh_token")).toBe("refresh123");
659662
expect(body.get("client_id")).toBe("client123");
663+
expect(body.get("example_url")).toBe("https://auth.example.com/token");
660664
expect(body.get("example_param")).toBe("example_value");
661665
expect(body.get("client_secret")).toBeUndefined;
662666
});

src/client/auth.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export interface OAuthClientProvider {
6767
*/
6868
codeVerifier(): string | Promise<string>;
6969

70-
authToTokenEndpoint?(headers: Headers, params: URLSearchParams): void | Promise<void>;
70+
authToTokenEndpoint?(url: URL, headers: Headers, params: URLSearchParams): void | Promise<void>;
7171
}
7272

7373
export type AuthResult = "AUTHORIZED" | "REDIRECT";
@@ -407,7 +407,7 @@ export async function exchangeAuthorization(
407407
});
408408

409409
if (provider?.authToTokenEndpoint) {
410-
provider.authToTokenEndpoint(headers, params);
410+
provider.authToTokenEndpoint(tokenUrl, headers, params);
411411
} else if (clientInformation.client_secret) {
412412
params.set("client_secret", clientInformation.client_secret);
413413
}
@@ -470,7 +470,7 @@ export async function refreshAuthorization(
470470
});
471471

472472
if (provider?.authToTokenEndpoint) {
473-
provider.authToTokenEndpoint(headers, params);
473+
provider.authToTokenEndpoint(tokenUrl, headers, params);
474474
} else if (clientInformation.client_secret) {
475475
params.set("client_secret", clientInformation.client_secret);
476476
}

0 commit comments

Comments
 (0)