Skip to content

Commit 8eff861

Browse files
committed
Support usage with auth middleware
1 parent 032b437 commit 8eff861

2 files changed

Lines changed: 7 additions & 0 deletions

File tree

src/client/middleware.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@ describe("withOAuth", () => {
161161
serverUrl: "https://api.example.com",
162162
resourceMetadataUrl: mockResourceUrl,
163163
fetchFn: mockFetch,
164+
userAgentProvider: expect.any(Function),
164165
});
165166

166167
// Verify the retry used the new token
@@ -209,6 +210,7 @@ describe("withOAuth", () => {
209210
serverUrl: "https://api.example.com", // Should be extracted from request URL
210211
resourceMetadataUrl: mockResourceUrl,
211212
fetchFn: mockFetch,
213+
userAgentProvider: expect.any(Function),
212214
});
213215

214216
// Verify the retry used the new token
@@ -396,6 +398,7 @@ describe("withOAuth", () => {
396398
serverUrl: "https://api.example.com", // Should extract origin from URL object
397399
resourceMetadataUrl: undefined,
398400
fetchFn: mockFetch,
401+
userAgentProvider: expect.any(Function),
399402
});
400403
});
401404
});
@@ -995,6 +998,7 @@ describe("Integration Tests", () => {
995998
"https://auth.example.com/.well-known/oauth-protected-resource",
996999
),
9971000
fetchFn: mockFetch,
1001+
userAgentProvider: expect.any(Function),
9981002
});
9991003
});
10001004
});

src/client/middleware.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55
UnauthorizedError,
66
} from "./auth.js";
77
import { FetchLike } from "../shared/transport.js";
8+
import { createUserAgentProvider } from "../shared/userAgent.js";
89

910
/**
1011
* Middleware function that wraps and enhances fetch functionality.
@@ -41,6 +42,7 @@ export type Middleware = (next: FetchLike) => FetchLike;
4142
export const withOAuth =
4243
(provider: OAuthClientProvider, baseUrl?: string | URL): Middleware =>
4344
(next) => {
45+
const userAgentProvider = createUserAgentProvider();
4446
return async (input, init) => {
4547
const makeRequest = async (): Promise<Response> => {
4648
const headers = new Headers(init?.headers);
@@ -70,6 +72,7 @@ export const withOAuth =
7072
serverUrl,
7173
resourceMetadataUrl,
7274
fetchFn: next,
75+
userAgentProvider,
7376
});
7477

7578
if (result === "REDIRECT") {

0 commit comments

Comments
 (0)