Skip to content

Instantly share code, notes, and snippets.

@herrjemand
Last active January 20, 2019 17:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save herrjemand/2279b9501d51f9f72762b10fce72b9a4 to your computer and use it in GitHub Desktop.
Save herrjemand/2279b9501d51f9f72762b10fce72b9a4 to your computer and use it in GitHub Desktop.
document.getElementById('register').addEventListener('submit', function(event) {
event.preventDefault();
let username = this.username.value;
let displayName = this.displayName.value;
startPasswordlessEnrolment({username, displayName})
.then((serverResponse) => {
if(serverResponse.status !== 'startFIDOEnrolmentRK')
throw new Error('Error registering user! Server returned: ' + serverResponse.errorMessage);
return getMakeCredentialChallenge()
})
.then((makeCredChallenge) => {
/*{
"challenge": "YPpAQ5-8yw7ty1GxvZRoosKoYraXWpeNJ4jNffh-gy0",
"rp": {
"name": "Example Inc."
},
"user": {
"id": "pH4atM-uM2FlifiEVD5OtZnSrvxMcS1OXao8fEP6UFs",
"name": "alice@example.com",
"displayName": "Alice von Delingher"
},
"pubKeyCredParams": [
{ "type": "public-key", "alg": -7 },
{ "type": "public-key", "alg": -257 }
],
"authenticatorSelection": {
"requireResidentKey": true
},
"status": "ok"
}*/
makeCredChallenge = preformatMakeCredReq(makeCredChallenge);
return navigator.credentials.create({ 'publicKey': makeCredChallenge })
})
.then((newCredentialInfo) => {
newCredentialInfo = publicKeyCredentialToJSON(newCredentialInfo)
return makeCredentialResponse(newCredentialInfo)
})
.then((serverResponse) => {
if(serverResponse.status !== 'ok')
throw new Error('Error registering user! Server returned: ' + serverResponse.errorMessage);
alert('Success!');
})
.catch((error) => {
alert('FAIL' + error)
console.log('FAIL', error)
})
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment