No description
Find a file
George Karagkiaouris 450552ddba
Split Set-Cookie header correctly (#30560)
## Bug

- [x] Related issues linked using `fixes #number`
- [x] Integration tests added
- [ ] Errors have helpful link attached, see `contributing.md`

Fixes #30430 

There's some more discussion in the issue, but in summary:
- web `Headers` implementation combines all header values with `', '`
- For `Set-Cookie` headers, you're supposed to set them as separate values, not combine them
- web `Headers` forbids the use of `Cookie`, `Set-Cookie` and some more headers, so they don't have custom implementation for those, and still joins them with `,`
- We currently just split them using `split(',')`, but this breaks when the header contains a date (expires, max-age) that also includes a `,`

I used this method to split the Set-Cookie header properly: https://www.npmjs.com/package/set-cookie-parser#splitcookiestringcombinedsetcookieheader as suggested [here](https://github.com/whatwg/fetch/issues/973#issuecomment-559678813)

I didn't add it as a dependency, since we only needed that one method and I wasn't sure what the process is for adding dependencies, so I just added the method in the middleware utils
2021-10-28 17:46:58 +00:00
.github fix lint problem (#30553) 2021-10-28 14:22:23 +00:00
.vscode Additional bench tracing improvements (#29325) 2021-09-27 12:57:37 +02:00
bench Add automated bench script for nested-deps (#29583) 2021-10-06 13:23:32 +02:00
docs Document Cross-Platform VS Code Debugging (#30052) 2021-10-28 10:59:31 +00:00
errors Update SWC failed error with link to discussion (#30469) 2021-10-27 18:25:08 +00:00
examples Update next-transpile-modules to 9.0.0 across examples (#30418) 2021-10-27 09:48:28 +00:00
packages Split Set-Cookie header correctly (#30560) 2021-10-28 17:46:58 +00:00
scripts Use fallback SWC version when binary publish fails (#30568) 2021-10-28 11:44:19 -05:00
test Split Set-Cookie header correctly (#30560) 2021-10-28 17:46:58 +00:00
.alexignore Enable Alex documentation linting for docs (#26598) 2021-06-25 11:40:50 -05:00
.alexrc Enable Alex documentation linting for docs (#26598) 2021-06-25 11:40:50 -05:00
.eslintignore Exclude SWC test input/output JS from eslint checks 2021-10-10 13:17:04 +02:00
.eslintrc.json [ESLint] Remove error when file patterns are unmatched + ESLint setup changes (#27119) 2021-07-16 20:19:08 +02:00
.gitattributes the way towards webpack 5 typings (#29105) 2021-09-21 19:17:16 +02:00
.gitignore Update output tracing resolving (#29473) 2021-09-29 12:38:21 -05:00
.npmrc Remove version prefix 2018-10-02 01:35:56 +02:00
.prettierignore Exclude bench/nested-deps from prettier check 2021-10-10 13:20:16 +02:00
.prettierignore_staged Add/styled jsx swc (#29005) 2021-09-15 09:24:31 +02:00
.prettierrc.json Prettier trailingComma default value to es5 since 2.0 (#14391) 2020-06-22 13:25:24 +02:00
azure-pipelines.yml Bump "engines" to node >= 12.22.0 (#29949) 2021-10-15 20:55:14 +00:00
CODE_OF_CONDUCT.md Update Code of Conduct email address (#12108) 2020-04-22 16:27:24 +02:00
contributing.md Fixed grammatical errors in CONTRIBUTING.md (#30542) 2021-10-28 11:15:36 -05:00
jest.config.js Use import() to load next.config.js (#29935) 2021-10-16 14:22:42 +02:00
lerna.json v12.0.2-canary.6 2021-10-28 12:00:00 -05:00
license.md Update license year for all packages 2021-01-11 11:12:19 +01:00
lint-staged.config.js Replace CLIEngine with ESLint (#25801) 2021-06-09 13:54:10 +02:00
package.json Add new target for middleware (#30299) 2021-10-26 18:50:56 +02:00
readme.md Monorepo (#5341) 2018-10-01 01:02:10 +02:00
release.js Match last PR mention in commit message for release notes 2021-05-07 19:53:38 +02:00
run-tests.js Update test traces to only run on retry (#30459) 2021-10-27 14:06:36 -05:00
SECURITY.md Create SECURITY.md 2020-07-13 19:25:08 +02:00
skip-docs-change.js Update repo scripts to separate folder (#26787) 2021-07-01 13:41:27 +02:00
test-file.txt Add additional file serving tests (#12479) 2020-05-04 11:58:19 -05:00
tsconfig.json Update test set-up to leverage playwright when able to (#28634) 2021-09-13 14:36:25 +02:00
UPGRADING.md Move upgrading guide to /docs (#10727) 2020-02-28 23:46:18 +01:00
vercel.json Silence GH Comments for Preview URLs (#18766) 2020-11-03 21:59:47 +00:00
yarn.lock Add new target for middleware (#30299) 2021-10-26 18:50:56 +02:00

Next.js

Getting Started

Visit https://nextjs.org/learn to get started with Next.js.

Documentation

Visit https://nextjs.org/docs to view the full documentation.

Who is using Next.js?

Next.js is used by the world's leading companies. Check out the Next.js Showcase to learn more.

Community

The Next.js community can be found on GitHub Discussions, where you can ask questions, voice ideas, and share your projects.

To chat with other community members you can join the Next.js Discord.

Our Code of Conduct applies to all Next.js community channels.

Contributing

Please see our contributing.md.

Good First Issues

We have a list of good first issues that contain bugs which have a relatively limited scope. This is a great place to get started, gain experience, and get familiar with our contribution process.

Authors