apollo-server icon indicating copy to clipboard operation
apollo-server copied to clipboard

"includeCookies" not respected for embedded Sandbox after initial reload

Open mderriey opened this issue 2 years ago • 5 comments

Issue Description

The very first time someone accesses the embedded Sandbox configured with cookies included by default, the following happens:

  1. Page loads, go to connection settings, cookies are included (wanted behaviour)
  2. A ton of requests happen in the background
  3. At some point, the page/frame reloads automatically
  4. Go to connection settings, cookies are disabled (unwanted behaviour)

At this stage, refreshing the page entirely doesn't bring back the initial config, which means users explicitly have to go to connection settings and enable cookies. After doing this, though, the preference is persisted across refreshes.

Link to Reproduction

See below

Reproduction Steps

Apologies, I tried to sign up / log in to CodeSandbox, but it seems it doesn't work.

However, repro steps are super simple:

  1. Start from the Apollo CodeSandbox: https://codesandbox.io/p/sandbox/apollo-server-typescript-3opde

  2. In index.ts, replace

    ApolloServerPluginLandingPageLocalDefault({
      embed: { runTelemetry: false }, 
    }),
    

    with

    ApolloServerPluginLandingPageLocalDefault({
      includeCookies: true,
      embed: { runTelemetry: false }, 
    }),
    
  3. Open an incognito/InPrivate tab, and reach the CodeSandbox public URL

  4. Observe what happens as per the description.

Here's also a video of it showing on a personal project:

https://github.com/apollographql/apollo-server/assets/6102639/419e1012-4a10-4d8b-893a-bd55ebefad7c

mderriey avatar Aug 14 '23 08:08 mderriey

Hi! According to our landing page docs, includeCookies should be at the top level, instead of nested under embed.

Could you let me know if that works for you?

Thanks!

mayakoneval avatar Aug 21 '23 16:08 mayakoneval

Hi @mayakoneval,

Apologies, this was a typo, we do have includeCookies at the top level, as indicated in the docs you linked to. I edited the original post to avoid confusion.

I finally managed to log in to Sandbox and create a proper repro, which you can find here: https://codesandbox.io/p/sandbox/admiring-browser-ln69rj?file=/src/index.ts:1,1.

Remember to open this in an incognito/InPrivate window, and to wait for the frame to reload before checking again whether cookies are configured to be included, as I did in the video in the original post.

Cheers

mderriey avatar Aug 22 '23 05:08 mderriey

Hey @mayakoneval, did you get a chance to have a look at this?

mderriey avatar Sep 19 '23 09:09 mderriey

Hi @mayakoneval, this is still an issue for us, the includeCookies setting doesn't work, or rather is lost, on the very first load of the embedded Sandbox.

Any chance you could take a look at this?

mderriey avatar Apr 04 '24 08:04 mderriey