I don't see any explicit decoding of the query param:
It was some time ago I made this server, but I think Fastify is implicitly decoding the GET params. It makes it into an object.
It will naturally not attempt to decode twice, which is why the JSON.parse() errors out.
reply
Perhaps we're double encoding when we shouldn't be?
Yes, as far as I can tell, it seems to be double-encoded when it shouldn't be.
A quick look. Yours require two decodeURIComponents:
// stacker.news decodeURIComponent(decodeURIComponent("%257B%2522identifier%2522%253A%2522SatsAllDay%2540stacker.news%2522%257D")); '{"identifier":"SatsAllDay@stacker.news"}' // blixt wallet decodeURIComponent("%7B%22name%22%3A%22Hampus%22%2C%22identifier%22%3A%22hampus%40blixtwallet.com%22%7D"); '{"name":"Hampus","identifier":"hampus@blixtwallet.com"}'
reply
Though I'm not sure who's in the wrong here. I'll investigate some more.
reply
We’re probably getting URI encoding for free with the native JS API that constructs the URL
reply
Perhaps we're double encoding when we shouldn't be?
Yes, my understanding after reading the specification again is that it should not be encoded twice.
reply
Yea that makes sense. I’ll work up a fix today!