WebAuthn cryptically not working in production but works perfectly in development

DEAR GOD

Okay, try this: can you patch-package the line that sets const jsonBody = JSON.parse(...) to be just const jsonBody = this.params ?

I forgot that this.params exists and already does all of this decoding work for us. :grimacing:

2 Likes

Oooo I bet that’s it, damn. Well at least we know, I was really worried there for a while that WebAuthn just didn’t work outside of localhost and was getting nervous!

Assuming that patch works I’ll open an issue and get this fixed today! We just released 3.2.1 but maybe I can get @dom to do a 3.2.2 ASAP!

2 Likes

LOL I’m glad we got to the bottom of this!! Testing the patch now, deploying and will post back here shortly :slight_smile:

And assuming this works, if y’all don’t have the bandwidth to get the patch out I’d love to handle it myself as my first contribution to the code!

It works! Tested both registration and authentication on both Chrome on macOS and Safari on iOS - it’s as simple as what you said, switching to const jsonBody = this.params. (note that it needs to be done in both webAuthnRegister and webAuthnAuthenticate)

Let me know if I should work on opening a PR for that or if @dom is on it!

2 Likes

I’m on it! Working on a PR as we speak. :slight_smile:

Thanks for being so patient and helping me get to the bottom of this! And thanks for pitching in @IAmKale!

2 Likes

How’s this look?

I simplified it to remove the jsonBody var altogether and just use this.params when needed.

1 Like

It looks great!! Thank you so much @rob! This whole interaction has been a great example of why I love redwood :blush: