1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import { randomUUID } from "node:crypto";
import { parse } from "npm:cookie";
export default async function(req: Request): Promise<Response> {
const origin = req.headers.get("origin") ?? "*";
const { D = randomUUID() } = parse(req.headers.get("cookie") ?? "");
const expires = new Date(Date.now() + 1000 * 60 * 60 * 24 * 28).toUTCString();
const headers = {
"set-cookie": `D=${D}; Expires=${expires}; SameSite=None; Secure; Partitioned`,
"access-control-allow-credentials": "true",
// "access-control-allow-headers": "cookie", // not required?
"access-control-allow-origin": origin,
};
return Response.json(headers, { headers });
}