forked from clerk/javascript
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrequireAuth.ts
More file actions
16 lines (12 loc) · 722 Bytes
/
Copy pathrequireAuth.ts
File metadata and controls
16 lines (12 loc) · 722 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import type { Request, Response } from 'express';
import { clerkClient } from './clerkClient';
import { createClerkExpressRequireAuth } from './clerkExpressRequireAuth';
import type { ClerkMiddlewareOptions, RequireAuthProp } from './types';
import { runMiddleware } from './utils';
type ExpressApiHandlerRequireAuth<T = any> = (req: RequireAuthProp<Request>, res: Response<T>) => void | Promise<void>;
export function requireAuth(handler: ExpressApiHandlerRequireAuth, options?: ClerkMiddlewareOptions): any {
return async (req: Request, res: Response) => {
await runMiddleware(req, res, createClerkExpressRequireAuth({ clerkClient })(options));
return handler(req as RequireAuthProp<Request>, res);
};
}