@@ -288,40 +288,54 @@ const passkeys = {
288
288
const publicKeyCredential = await webauthnJSON . create ( credentialCreateOptions ) ;
289
289
290
290
// Return encoded PublicKeyCredential to server
291
- await fetch ( "/cbsecurity/passkeys/registration" , {
291
+ const registrationResponse = await fetch ( "/cbsecurity/passkeys/registration" , {
292
292
method : "POST" ,
293
293
headers : {
294
294
"Content-Type" : "application/json"
295
295
} ,
296
296
body : JSON . stringify ( {
297
297
"publicKeyCredentialJson" : JSON . stringify ( publicKeyCredential )
298
298
} )
299
- } )
300
- window . location = redirectLocation ;
299
+ } ) ;
300
+
301
+ if ( registrationResponse . ok ) {
302
+ window . location = redirectLocation ;
303
+ } else {
304
+ console . error ( "cbsecurity-passkeys - Registration failed:" , registrationResponse ) ;
305
+ }
301
306
} ,
302
- async login ( username , redirectLocation = "/" ) {
303
- // Make the call that returns the credentialGetJson above
304
- const credentialGetOptions = await fetch ( "/cbsecurity/passkeys/authentication/new?" + new URLSearchParams ( {
305
- "username" : username
306
- } ) )
307
- . then ( resp => resp . json ( ) )
308
- . then ( json => JSON . parse ( json ) ) ;
307
+ async login ( username , redirectLocation = "/" , additionalParams = { } ) {
308
+ if ( ! username ) {
309
+ username = "" ;
310
+ }
311
+ // Make the call that returns the credentialGetJson above
312
+ const credentialGetOptions = await fetch ( "/cbsecurity/passkeys/authentication/new?" + new URLSearchParams ( {
313
+ ...additionalParams ,
314
+ "username" : username ,
315
+ } ) )
316
+ . then ( resp => resp . json ( ) )
317
+ . then ( json => JSON . parse ( json ) ) ;
318
+
319
+ // Call WebAuthn ceremony using webauthn-json wrapper
320
+ const publicKeyCredential = await webauthnJSON . get ( credentialGetOptions ) ;
309
321
310
- // Call WebAuthn ceremony using webauthn-json wrapper
311
- const publicKeyCredential = await webauthnJSON . get ( credentialGetOptions ) ;
322
+ // Return encoded PublicKeyCredential to server
323
+ const authenticationResponse = await fetch ( "/cbsecurity/passkeys/authentication" , {
324
+ method : "POST" ,
325
+ headers : {
326
+ "Content-Type" : "application/json"
327
+ } ,
328
+ body : JSON . stringify ( {
329
+ ...additionalParams ,
330
+ "publicKeyCredentialJson" : JSON . stringify ( publicKeyCredential )
331
+ } )
332
+ } ) ;
312
333
313
- // Return encoded PublicKeyCredential to server
314
- await fetch ( "/cbsecurity/passkeys/authentication" , {
315
- method : "POST" ,
316
- headers : {
317
- "Content-Type" : "application/json"
318
- } ,
319
- body : JSON . stringify ( {
320
- "publicKeyCredentialJson" : JSON . stringify ( publicKeyCredential )
321
- } )
322
- } ) . then ( ( ) => {
323
- window . location = redirectLocation ;
324
- } ) ;
334
+ if ( authenticationResponse . ok ) {
335
+ window . location = redirectLocation ;
336
+ } else {
337
+ console . error ( "cbsecurity-passkeys - Authentication failed:" , authenticationResponse ) ;
338
+ }
325
339
} ,
326
340
} ;
327
341
0 commit comments