-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Override cookie encode #10055
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Override cookie encode #10055
Conversation
Right now, if a developer adds an encode/decode function when creating a cookie, it's applied after the cookie is Base64 encoded. We should not Base64 encode a cookie if the developer have added a `encode`/`decode` override to the cookie options. Unfortunately this makes the override and sign/secret options mutually exclusive. BREAKING CHANGE: If you override the cookie encode/decode functions, you can't sign the cookie with a secret
adds tests for the encode/decode options.
|
Hi @Evanion, Welcome, and thank you for contributing to Remix! Before we consider your pull request, we ask that you sign our Contributor License Agreement (CLA). We require this only once. You may review the CLA and sign it by adding your name to contributors.yml. Once the CLA is signed, the If you have already signed the CLA and received this response in error, or if you have any questions, please contact us at [email protected]. Thanks! - The Remix team |
Thank you for signing the Contributor License Agreement. Let's get this merged! 🥳 |
I'm unsure what |
Thank you for opening this pull request, and our apologies we haven't gotten around to it yet! With the release of React Router v7 we are sun-setting continued development/maintenance on Remix v2. If you have not already upgraded to React Router v7, we recommend you do so. We've tried to make the upgrade process as smooth as possible with our Future Flags. We are now in the process of cleaning up outdated issues and pull requests to improve the overall hygiene of our repositories. We plan to continue to address 2 types of issues in Remix v2:
If you believe this pull request meets one of those criteria, please respond or create a new pull request so it pops up on our radar (since github notifications may get lost in the noise 😕). For all other issues/changes, ongoing maintenance will be happening in React Router v7, so:
If you have any questions you can always reach out on Discord. Thanks again for providing feedback and helping us make our framework even better! |
Current behaviour
Right now, the Base64 encoding is applied before the value is sent to the cookie serializer. but the
options
object still takes parameters for overriding theencode
/decode
functions.Expected behaviour
I would expect that when I add my own
encode
/decode
functions, that the value isn't Base64 encoded anymore.Side effects
One side effect of this change, is that you can't sign cookies using the
secrets
property any more. But the user can still handle that themselves in theencode
/decode
functions.This will give more flexibility to the cookie utils in remix, and allow developers to keep a good DX, by not having to use different APIs for different cookies minimizing confusion.
Testing Strategy
These new tests covers this code