diff --git a/.changeset/mighty-otters-remain.md b/.changeset/mighty-otters-remain.md new file mode 100644 index 00000000000..63683b04026 --- /dev/null +++ b/.changeset/mighty-otters-remain.md @@ -0,0 +1,5 @@ +--- +'@clerk/clerk-js': patch +--- + +Fix an issue where Clerk's `proxyUrl` was not being respected. diff --git a/packages/clerk-js/src/core/__tests__/clerk.test.ts b/packages/clerk-js/src/core/__tests__/clerk.test.ts index 7b1434a91ba..72f72c6d09a 100644 --- a/packages/clerk-js/src/core/__tests__/clerk.test.ts +++ b/packages/clerk-js/src/core/__tests__/clerk.test.ts @@ -2080,6 +2080,19 @@ describe('Clerk singleton', () => { }); }); + describe('proxyUrl', () => { + describe('when proxyUrl is set', () => { + test('fapiClient should use Clerk.proxyUrl as its baseUrl', async () => { + const sut = new Clerk(productionPublishableKey, { + proxyUrl: 'https://proxy.com/api/__clerk', + }); + await sut.load({}); + + expect(sut.getFapiClient().buildUrl({ path: '/me' }).href).toContain('https://proxy.com/api/__clerk/v1/me'); + }); + }); + }); + describe('buildUrlWithAuth', () => { it('builds an absolute url from a relative url in development', async () => { const sut = new Clerk(developmentPublishableKey); diff --git a/packages/clerk-js/src/core/clerk.ts b/packages/clerk-js/src/core/clerk.ts index b449e76aecb..49480c84d34 100644 --- a/packages/clerk-js/src/core/clerk.ts +++ b/packages/clerk-js/src/core/clerk.ts @@ -314,6 +314,7 @@ export class Clerk implements ClerkInterface { getSessionId: () => { return this.session?.id; }, + proxyUrl: this.proxyUrl, }); // This line is used for the piggy-backing mechanism BaseResource.clerk = this; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1c32457b5a6..a78b17f4779 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10277,6 +10277,7 @@ packages: lodash.isequal@4.5.0: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. lodash.isinteger@4.0.4: resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==}