Skip to content

Commit 107a6ac

Browse files
committed
Code cleanup and mild CORS tweaks
1 parent 4d9d243 commit 107a6ac

File tree

3 files changed

+15
-9
lines changed

3 files changed

+15
-9
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "labelzoom-cf-api-proxy",
3-
"version": "1.0.14",
3+
"version": "1.0.15",
44
"private": true,
55
"scripts": {
66
"deploy": "wrangler deploy",

src/cors.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,19 @@
1+
/* CORS-safelisted response headers:
2+
* - Cache-Control
3+
* - Content-Language
4+
* - Content-Length
5+
* - Content-Type
6+
* - Expires
7+
* - Last-Modified
8+
* - Pragma
9+
*/
10+
111
const corsHeaders = {
212
"Access-Control-Allow-Origin": "*",
313
"Access-Control-Allow-Methods": "GET,HEAD,POST,PUT,DELETE,OPTIONS",
414
"Access-Control-Max-Age": "86400",
515
"Access-Control-Allow-Credentials": "true",
6-
"Access-Control-Expose-Headers": "X-LZ-Request-ID",
16+
"Access-Control-Expose-Headers": "Retry-After, X-LZ-Request-ID",
717
};
818

919
/**
@@ -19,15 +29,15 @@ export async function handleOptions(request: Request, env: Env): Promise<Respons
1929
}
2030

2131
if (
22-
request.headers.get("Origin") !== null &&
32+
origin !== '' &&
2333
request.headers.get("Access-Control-Request-Method") !== null &&
2434
request.headers.get("Access-Control-Request-Headers") !== null
2535
) {
2636
// Handle CORS preflight requests.
2737
return new Response(null, {
2838
headers: {
2939
...corsHeaders,
30-
"Access-Control-Allow-Origin": request.headers.get("Origin") ?? '',
40+
"Access-Control-Allow-Origin": origin,
3141
"Access-Control-Allow-Headers": request.headers.get("Access-Control-Request-Headers") ?? '',
3242
},
3343
});

src/index.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,7 @@ async function handleConversionLog(request: Request<unknown, IncomingRequestCfPr
8282
async function proxyRequestToBackend(request: Request, url: URL, env: Env, requestID = ''): Promise<Response> {
8383
const backendUrl = env.LZ_PROD_API_BASE_URL + url.pathname + url.search;
8484
const newRequest = new Request(backendUrl, request);
85-
let ip = request.headers.get("X-Forwarded-For") ?? '';
86-
if (!ip) {
87-
ip = request.headers.get("Cf-Connecting-Ip") ?? '';
88-
}
89-
newRequest.headers.set('X-LZ-IP', ip);
85+
newRequest.headers.set('X-LZ-IP', request.headers.get("Cf-Connecting-Ip") ?? request.headers.get("X-Forwarded-For") ?? '');
9086
newRequest.headers.set('X-LZ-Secret-Key', env.LZ_PROD_API_SECRET_KEY)
9187
if (requestID) newRequest.headers.set("X-LZ-Request-ID", requestID);
9288
const response = await fetch(newRequest);

0 commit comments

Comments
 (0)