setCookie in api routes
setCookie works fine in a server function but when proxing requests through an api route, setCookie does not work. Is there a context or something additional needed to set secure http cookies?
import { SplatParams } from "@tanstack/react-router";
import { createAPIFileRoute } from "@tanstack/start/api";
import { setCookie } from "vinxi/http";
function proxyRequest(request: Request, params: SplatParams) {
const proxiedUrl = new URL("http://localhost:8080");
proxiedUrl.pathname = params._splat as string;
const proxiedRequest = new Request(proxiedUrl.toString(), request);
return fetch(proxiedRequest);
}
export const Route = createAPIFileRoute("/api/proxy/$")({
GET: async ({ request, params }) => {
const resp = await proxyRequest(request, params);
return resp;
},
PATCH: async ({ request, params }) => {
return proxyRequest(request, params);
},
DELETE: async ({ request, params }) => {
return proxyRequest(request, params);
},
PUT: async ({ request, params }) => {
return proxyRequest(request, params);
},
POST: async ({ request, params }) => {
setCookie("key", "value"); <---- This is not setting the cookie
return proxyRequest(request, params);
}
});
import { SplatParams } from "@tanstack/react-router";
import { createAPIFileRoute } from "@tanstack/start/api";
import { setCookie } from "vinxi/http";
function proxyRequest(request: Request, params: SplatParams) {
const proxiedUrl = new URL("http://localhost:8080");
proxiedUrl.pathname = params._splat as string;
const proxiedRequest = new Request(proxiedUrl.toString(), request);
return fetch(proxiedRequest);
}
export const Route = createAPIFileRoute("/api/proxy/$")({
GET: async ({ request, params }) => {
const resp = await proxyRequest(request, params);
return resp;
},
PATCH: async ({ request, params }) => {
return proxyRequest(request, params);
},
DELETE: async ({ request, params }) => {
return proxyRequest(request, params);
},
PUT: async ({ request, params }) => {
return proxyRequest(request, params);
},
POST: async ({ request, params }) => {
setCookie("key", "value"); <---- This is not setting the cookie
return proxyRequest(request, params);
}
});
0 Replies