duo-labs / webauthn.io

The source code for webauthn.io, a demonstration of WebAuthn.
https://webauthn.io
BSD 3-Clause "New" or "Revised" License
647 stars 120 forks source link

Fingerprint reader not working when using TPM on a Pixel 2XL #4

Closed peterhanlon closed 5 years ago

peterhanlon commented 5 years ago

It's worth mentioning from the start that I have no problem registering an account and logging in using the webauthn.io website, everything works as expected. However if I deploy the code from this repo it's not working for me. I've used the hosted docker image, i've built a local image and run the go code natively but still get the problem.

The problem is that when I try to register a user using TPM the user is created in the local sqllite DB but the fingerprint reader popup doesn't appear on the mobile device so no credentials are stored against the user. If I then try to login the user is found but the credentials are missing (the error I get is as follows)

time="2019-02-19T11:39:48Z" level=error msg="error creating assertion: Found no credentials for user"

So the problem appears to be that the fingerprint reader doesn't appear when I register the user. I'm running the server over HTTPS on an external server over port 80. I can't see any javascript errors in the Chrome console, when I register the user I see the text "Fetching options for new credentials" but nothing else. Is there some other configuration I need to change in order to host this code on a different domain?

peterhanlon commented 5 years ago

I missed the fact that makeCredential is throwing a 500, not sure if that helps. https://testdomain.com/makeCredential/o@o.com?attType=none&authType=platform 500

aseigler commented 5 years ago

I assume you edited the config.json to match testdomain.com? If so, I suggest stepping in with the debugger. There are a couple of spots where things can silently fail.

peterhanlon commented 5 years ago

Sorry it's my fault. The deployed version still had localhost in the config.json