Pular para o conteúdo

Override a Set-Cookie header with a certain value

Get a specific Set-Cookie header and update it with a certain value.

Atualizado em Ver como Markdown
export default {
	async fetch(request) {
		// Receive response from the origin
		const response = await fetch(request);

		// Create a new Headers object to modify response headers
		const newHeaders = new Headers(response.headers);

		// Get all Set-Cookie headers
		const cookieArray = response.headers.getSetCookie();
		if (cookieArray.length > 0) {
			const updatedCookies = cookieArray.map((cookie) => {
				// For example, replace the currency value with GBP
				if (cookie.trim().startsWith("currency=")) {
					return cookie.replace(/currency=[^;]+/, "currency=GBP");
				}
				return cookie;
			});

			// Delete the existing Set-Cookie headers
			newHeaders.delete("Set-Cookie");

			// Add the updated Set-Cookie headers individually
			updatedCookies.forEach((cookie) => {
				newHeaders.append("Set-Cookie", cookie.trim());
			});
		}

		// Return the modified response with updated headers
		return new Response(response.body, {
			status: response.status,
			headers: newHeaders,
		});
	},
};