Passwordless Playground

Using this tool, you can experiment with the various parameters of the JS helper library (to be released).

Registration

A username, email or other identifier

A server-side randomly generated string.
Which device to use as authenticator.
Number of milliseconds the user has to respond to the biometric/PIN check.
Whether to prompt for biometric/PIN check or not.

If enabled, the device attestation and clientData will be provided as base64 encoded binary data. Not available on some platforms.

passwordless.register("{{registration.username}}", "{{registration.challenge}}", {{registration.options}})
Register device
{{registration.result}}

Authentication

A server-side randomly generated string, the base64 encoded version will be signed.
Which device to use as authenticator.
Number of milliseconds the user has to respond to the biometric/PIN check.
Whether to prompt for biometric/PIN check or not.
passwordless.login(["{{authentication.credentialId}}"], "{{authentication.challenge}}", {{authentication.options}})
Login
{{authentication.result}}

Validation

The algorithm used for the public key created during registration.
The public key created during registration.

{{parseAuthData(verification.authenticatorData)}}
{{parseClientData(verification.clientData)}}

signature = sign(algorithm, publicKey, authenticatorData + sha256(clientData))

Verify
Signature is {{verification.isValid ? 'valid' : 'invalid'}}