Cookies are failing to set for subdomains during cy.request.
E.g. we call /auth of auth.test.server and it returns token cookie with .test.server. In this case cookie is not set.
Cookie is set in above example.
Look at packages/server/lib/request.coffee#setCookiesOnBrowser:
return if not tough.domainMatch(cookie.domain, parsedUrl.hostname)
And at tough-cookie documentation:
domainMatch(str,domStr[,canonicalize=true])
Answers "does this real domain match the domain in a cookie?". The str is the "current" domain-name and the domStr is the "cookie" domain-name. Matches according to RFC6265 Section 5.1.3, but it helps to think of it as a "suffix match".
So it should be:
return if not tough.domainMatch(parsedUrl.hostname, cookie.domain)
>=3.5.0
+1, as discussed here, we have exactly the same issue which is stopping us for upgrading from 3.4.1
@tozes your link was broken
https://github.com/cypress-io/cypress/issues/5688#issuecomment-558212709
The code for this is done in cypress-io/cypress#5657, but has yet to be released.
We'll update this issue and reference the changelog when it's released.
Released in 3.7.0.
@jennifer-shehane , @flotwig , @brian-mann,
Shame on my guys, I've missed another incorrect usage of domainMatch in cypress here: https://github.com/cypress-io/cypress/blob/develop/packages/server/lib/browsers/cdp_automation.ts#L24
Which basically means that this issue is only partially resolved in #5657. Unfortunately looks like we have incorrect tests for that code as well: https://github.com/cypress-io/cypress/pull/5816.
I'm not sure if I will be able to pick this up soon enough. Could please one of you reopen this one and do the fix?
@tozes FYI
@donotello That's my bad, I noticed that the tests passed without that patch so I left it out. I forgot to go back and double-check it against tough-cookie's documentation, but I believe you're correct. I'll open a PR.
The code for this is done in cypress-io/cypress#5862, but has yet to be released.
We'll update this issue and reference the changelog when it's released.
Released in 3.8.0.
Most helpful comment
+1, as discussed here, we have exactly the same issue which is stopping us for upgrading from 3.4.1