MCPcopy Create free account
hub / github.com/Openpanel-dev/openpanel / getClientHeaders

Function getClientHeaders

packages/sdks/nextjs/createNextRouteHandler.ts:14–43  ·  view source on GitHub ↗
(req: Request)

Source from the content-addressed store, hash-verified

12const SCRIPT_PATH = '/op1.js';
13
14function getClientHeaders(req: Request): Headers {
15 const headers = new Headers();
16 const ip =
17 req.headers.get('cf-connecting-ip') ??
18 req.headers.get('x-forwarded-for')?.split(',')[0] ??
19 req.headers.get('x-vercel-forwarded-for');
20
21 headers.set('Content-Type', 'application/json');
22 headers.set(
23 'openpanel-client-id',
24 req.headers.get('openpanel-client-id') ?? '',
25 );
26
27 // Construct origin: browsers send Origin header for POST requests and cross-origin requests,
28 // but not for same-origin GET requests. Fallback to constructing from request URL.
29 const origin =
30 req.headers.get('origin') ??
31 (() => {
32 const url = new URL(req.url);
33 return `${url.protocol}//${url.host}`;
34 })();
35 headers.set('origin', origin);
36
37 headers.set('User-Agent', req.headers.get('user-agent') ?? '');
38 if (ip) {
39 headers.set('openpanel-client-ip', ip);
40 }
41
42 return headers;
43}
44
45async function handleApiRoute(
46 req: Request,

Callers 1

handleApiRouteFunction · 0.70

Calls 2

getMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected