From 6dea80d489f1b848f6c7e1aa96a6295232e88659 Mon Sep 17 00:00:00 2001 From: Joshua Kiwiet-Pantaleoni Date: Wed, 31 Jan 2024 15:06:39 -0800 Subject: [PATCH 1/2] fix: set cookie headers not being added to response --- server/vue-worker.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/server/vue-worker.js b/server/vue-worker.js index 2deec9abd5..303f452501 100644 --- a/server/vue-worker.js +++ b/server/vue-worker.js @@ -47,7 +47,7 @@ async function render(context) { } }); - const setCookies = []; + let setCookies = []; return Promise.all([typesPromise, cookiePromise]) .then(([types, cookieInfo]) => { @@ -55,14 +55,14 @@ async function render(context) { context.config.graphqlPossibleTypes = types; // update cookies in the rendering context with any newly fetched session cookies context.cookies = Object.assign(context.cookies, cookieInfo.cookies); - // forward any newly fetched 'Set-Cookie' headers - context.setCookies = [...cookieInfo.setCookies]; + // collect any newly fetched 'Set-Cookie' headers to send after the render + setCookies = [...cookieInfo.setCookies]; // render the app return renderer.renderToString(context); }) .then(html => { // collect any cookies created during the app render - setCookies.concat(context.setCookies); + setCookies = [...setCookies, ...context.setCookies]; // send the final rendered html return { html, @@ -71,7 +71,7 @@ async function render(context) { }) .catch(err => { // collect any cookies created during the app render - setCookies.concat(context.setCookies); + setCookies = [...setCookies, ...context.setCookies]; // send the error return { error: err, From 2741ab066d04330dc88109c102179bbac1b1566d Mon Sep 17 00:00:00 2001 From: Matt Stover Date: Wed, 31 Jan 2024 15:33:50 -0800 Subject: [PATCH 2/2] fix: check and coerce setCookies from the context if missing --- server/vue-worker.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/server/vue-worker.js b/server/vue-worker.js index 303f452501..a5ab25ebfd 100644 --- a/server/vue-worker.js +++ b/server/vue-worker.js @@ -62,7 +62,8 @@ async function render(context) { }) .then(html => { // collect any cookies created during the app render - setCookies = [...setCookies, ...context.setCookies]; + const contextSetCookies = context?.setCookies ?? []; + setCookies = [...setCookies, ...contextSetCookies]; // send the final rendered html return { html, @@ -71,7 +72,8 @@ async function render(context) { }) .catch(err => { // collect any cookies created during the app render - setCookies = [...setCookies, ...context.setCookies]; + const contextSetCookies = context?.setCookies ?? []; + setCookies = [...setCookies, ...contextSetCookies]; // send the error return { error: err,