| Author of the post here, There was no form submission, I'm not sure where you got that. There was also no POST. Though yes, I agree that in the core HTTP semantic, you wouldn't want to change state on a GET and that should include not calling `Set-Cookie`. And yet the reality is that that nearly every application - and many popular libraries like auth0 - do in fact set and clear cookies on `GET`. The issue here was that the `Link` component in NextJs - does preloading by default (which is a bad idea exactly for the above reason of reality being different from theory) - doesn't do preloading by default when running on the dev server (so you don't see the error until its deployed) - because it does preloading directly in javascript, it can't possibly follow the HTTP semantic of not actually applying cookies until later when the cached route is used Everything else was the wild goose chase bits. Also I asked claude to criticize the article as a web forum might before publishing, and this is definitely the tone it gave :D Oh, also, I'm pretty sure I got the part wrong where i was talking about the preload attribute in HTML, but so far no one's noticed. I should correct that. |
OP was saying the logout function should have been behind a form submission / POST.