Skip to content

Commit 1fed954

Browse files
committed
fix(express): forward clockSkewInMs
1 parent 68d1d8d commit 1fed954

2 files changed

Lines changed: 33 additions & 1 deletion

File tree

packages/express/src/__tests__/clerkMiddleware.test.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ vi.mock('@clerk/backend/proxy', async () => {
1414

1515
import { clerkMiddleware } from '../clerkMiddleware';
1616
import { getAuth } from '../getAuth';
17+
import { authenticateRequest } from '../authenticateRequest';
1718
import { assertNoDebugHeaders, assertSignedOutDebugHeaders, runMiddleware, runMiddlewareOnPath } from './helpers';
1819

1920
describe('clerkMiddleware', () => {
@@ -94,6 +95,36 @@ describe('clerkMiddleware', () => {
9495
assertSignedOutDebugHeaders(response);
9596
});
9697

98+
it('forwards clockSkewInMs to authenticateRequest', async () => {
99+
const authenticateRequestMock = vi.fn().mockResolvedValue({});
100+
const clerkClient = {
101+
authenticateRequest: authenticateRequestMock,
102+
} as any;
103+
104+
await authenticateRequest({
105+
clerkClient,
106+
request: {
107+
method: 'GET',
108+
url: '/',
109+
headers: {
110+
host: 'example.com',
111+
},
112+
} as Request,
113+
options: {
114+
publishableKey: 'pk_test_Y2xlcmsuZXhhbXBsZS5jb20k',
115+
secretKey: 'sk_test_....',
116+
clockSkewInMs: 12_345,
117+
},
118+
});
119+
120+
expect(authenticateRequestMock).toHaveBeenCalledWith(
121+
expect.any(Request),
122+
expect.objectContaining({
123+
clockSkewInMs: 12_345,
124+
}),
125+
);
126+
});
127+
97128
it('throws error if clerkMiddleware is not executed before getAuth', async () => {
98129
const customMiddleware: RequestHandler = (request, response, next) => {
99130
const auth = getAuth(request);

packages/express/src/authenticateRequest.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import { incomingMessageToRequest, loadApiEnv, loadClientEnv, requestToProxyRequ
2424
*/
2525
export const authenticateRequest = (opts: AuthenticateRequestParams) => {
2626
const { clerkClient, request, options } = opts;
27-
const { jwtKey, authorizedParties, audience, acceptsToken } = options || {};
27+
const { jwtKey, authorizedParties, audience, acceptsToken, clockSkewInMs } = options || {};
2828

2929
const clerkRequest = createClerkRequest(incomingMessageToRequest(request));
3030
const env = { ...loadApiEnv(), ...loadClientEnv() };
@@ -55,6 +55,7 @@ export const authenticateRequest = (opts: AuthenticateRequestParams) => {
5555
machineSecretKey,
5656
publishableKey,
5757
jwtKey,
58+
clockSkewInMs,
5859
authorizedParties,
5960
proxyUrl,
6061
isSatellite,

0 commit comments

Comments
 (0)