Skip to content

Commit 08ca029

Browse files
authored
Merge pull request #143 from adamberryhuff/patch-1
Fixing some README Javascript Typo's
2 parents 7fdb57c + 6231a08 commit 08ca029

File tree

2 files changed

+27
-17
lines changed

2 files changed

+27
-17
lines changed

README

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -202,22 +202,26 @@ function base64urlToUint8array(base64Bytes) {
202202
return base64js.toByteArray((base64Bytes + padding).replace(/\//g, "_").replace(/\+/g, "-"));
203203
}
204204
function uint8arrayToBase64url(bytes) {
205-
return base64js.fromByteArray(bytes).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
205+
if (bytes instanceof Uint8Array) {
206+
return base64js.fromByteArray(bytes).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
207+
} else {
208+
return uint8arrayToBase64url(new Uint8Array(bytes));
209+
}
206210
}
207211

208212
fetch(/* ... */) // Make the call that returns the credentialCreateJson above
209213
.then(credentialCreateJson => ({ // Decode byte arrays from base64url
210214
publicKey: {
211215
...credentialCreateJson.publicKey,
212216

213-
challenge: base64urlToUint8Array(credentialCreateJson.publicKey.challenge),
217+
challenge: base64urlToUint8array(credentialCreateJson.publicKey.challenge),
214218
user: {
215219
...credentialCreateJson.publicKey.user,
216-
id: base64urlToUint8Array(credentialCreateJson.publicKey.user.id),
220+
id: base64urlToUint8array(credentialCreateJson.publicKey.user.id),
217221
},
218222
excludeCredentials: credentialCreateJson.publicKey.excludeCredentials.map(credential => ({
219223
...credential,
220-
id: base64urlToUint8Array(credential.id),
224+
id: base64urlToUint8array(credential.id),
221225
})),
222226

223227
// Warning: Extension inputs could also contain binary data that needs encoding
@@ -230,13 +234,15 @@ fetch(/* ... */) // Make the call that returns the credential
230234
type: publicKeyCredential.type,
231235
id: publicKeyCredential.id,
232236
response: {
233-
attestationObject: uint8arrayToBase64url(response.response.attestationObject),
234-
clientDataJSON: uint8arrayToBase64url(response.response.clientDataJSON),
235-
transports: response.response.getTransports() || [],
237+
attestationObject: uint8arrayToBase64url(publicKeyCredential.response.attestationObject),
238+
clientDataJSON: uint8arrayToBase64url(publicKeyCredential.response.clientDataJSON),
239+
240+
// Attempt to read transports, but recover gracefully if not supported by the browser
241+
transports: publicKeyCredential.response.getTransports && publicKeyCredential.response.getTransports() || [],
236242
},
237243

238244
// Warning: Client extension results could also contain binary data that needs encoding
239-
clientExtensionResults: response.getClientExtensionResults(),
245+
clientExtensionResults: publicKeyCredential.getClientExtensionResults(),
240246
}))
241247
.then(encodedResult =>
242248
fetch(/* ... */)); // Return encoded PublicKeyCredential to server
@@ -314,7 +320,11 @@ function base64urlToUint8array(base64Bytes) {
314320
return base64js.toByteArray((base64Bytes + padding).replace(/\//g, "_").replace(/\+/g, "-"));
315321
}
316322
function uint8arrayToBase64url(bytes) {
317-
return base64js.fromByteArray(bytes).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
323+
if (bytes instanceof Uint8Array) {
324+
return base64js.fromByteArray(bytes).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
325+
} else {
326+
return uint8arrayToBase64url(new Uint8Array(bytes));
327+
}
318328
}
319329

320330
fetch(/* ... */) // Make the call that returns the credentialGetJson above
@@ -324,10 +334,10 @@ fetch(/* ... */) // Make the call that returns the credential
324334
allowCredentials: credentialGetJson.publicKey.allowCredentials
325335
&& credentialGetJson.publicKey.allowCredentials.map(credential => ({
326336
...credential,
327-
id: base64urlToUint8Array(credential.id),
337+
id: base64urlToUint8array(credential.id),
328338
})),
329339

330-
challenge: base64urlToUint8Array(credentialGetJson.publicKey.challenge),
340+
challenge: base64urlToUint8array(credentialGetJson.publicKey.challenge),
331341

332342
// Warning: Extension inputs could also contain binary data that needs encoding
333343
extensions: credentialGetJson.publicKey.extensions,
@@ -339,14 +349,14 @@ fetch(/* ... */) // Make the call that returns the credential
339349
type: publicKeyCredential.type,
340350
id: publicKeyCredential.id,
341351
response: {
342-
authenticatorData: uint8arrayToBase64url(response.response.authenticatorData),
343-
clientDataJSON: uint8arrayToBase64url(response.response.clientDataJSON),
344-
signature: uint8arrayToBase64url(response.response.signature),
345-
userHandle: response.response.userHandle && uint8arrayToBase64url(response.response.userHandle),
352+
authenticatorData: uint8arrayToBase64url(publicKeyCredential.response.authenticatorData),
353+
clientDataJSON: uint8arrayToBase64url(publicKeyCredential.response.clientDataJSON),
354+
signature: uint8arrayToBase64url(publicKeyCredential.response.signature),
355+
userHandle: publicKeyCredential.response.userHandle && uint8arrayToBase64url(publicKeyCredential.response.userHandle),
346356
},
347357

348358
// Warning: Client extension results could also contain binary data that needs encoding
349-
clientExtensionResults: response.getClientExtensionResults(),
359+
clientExtensionResults: publicKeyCredential.getClientExtensionResults(),
350360
}))
351361
.then(encodedResult =>
352362
fetch(/* ... */)); // Return encoded PublicKeyCredential to server

webauthn-server-demo/src/main/webapp/js/webauthn.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@
141141
response: {
142142
attestationObject: base64url.fromByteArray(response.response.attestationObject),
143143
clientDataJSON: base64url.fromByteArray(response.response.clientDataJSON),
144-
transports: response.response.getTransports() || [],
144+
transports: response.response.getTransports && response.response.getTransports() || [],
145145
},
146146
clientExtensionResults,
147147
};

0 commit comments

Comments
 (0)