export function createContext({
req,
resHeaders,
}: FetchCreateContextFnOptions) {
// custom code for parsing session - not important
const userId = getUserId(req.headers);
// see addSetCookie below
const newHeaders = addSetCookies({
// whenever I tried to pass `resHeaders` directly, I got error from client that it is unable to parse response - there was no error thrown in my code though
headers: new Headers(resHeaders),
sid: toSid(userId),
maxAge: 3600
});
return {
req,
resHeaders: newHeaders,
userId,
};
}
function addSetCookies(props: {
headers: Headers;
sid: string;
maxAge: number;
}): Headers {
[
`__Host-SID=${props.sid}; HttpOnly; Max-Age=${props.maxAge}; SameSite=Strict; Secure; Path=/`,
`aSID=${props.maxAge > 0 ? 1 : 0}; Max-Age=${props.maxAge}; SameSite=Strict; Secure; Path=/`,
].forEach((value) => props.headers.append("Set-Cookie", value));
return props.headers;
}
export function createContext({
req,
resHeaders,
}: FetchCreateContextFnOptions) {
// custom code for parsing session - not important
const userId = getUserId(req.headers);
// see addSetCookie below
const newHeaders = addSetCookies({
// whenever I tried to pass `resHeaders` directly, I got error from client that it is unable to parse response - there was no error thrown in my code though
headers: new Headers(resHeaders),
sid: toSid(userId),
maxAge: 3600
});
return {
req,
resHeaders: newHeaders,
userId,
};
}
function addSetCookies(props: {
headers: Headers;
sid: string;
maxAge: number;
}): Headers {
[
`__Host-SID=${props.sid}; HttpOnly; Max-Age=${props.maxAge}; SameSite=Strict; Secure; Path=/`,
`aSID=${props.maxAge > 0 ? 1 : 0}; Max-Age=${props.maxAge}; SameSite=Strict; Secure; Path=/`,
].forEach((value) => props.headers.append("Set-Cookie", value));
return props.headers;
}