File tree Expand file tree Collapse file tree 3 files changed +74
-0
lines changed Expand file tree Collapse file tree 3 files changed +74
-0
lines changed Original file line number Diff line number Diff line change @@ -59,4 +59,10 @@ Integrate using the `includes/passkeys.js` library:
59
59
)
60
60
}
61
61
</script >
62
+ <script >
63
+ window .cbSecurity .passkeys .autocomplete (
64
+ // redirectLocation ("/")
65
+ // additionalParams ({})
66
+ );
67
+ </script >
62
68
```
Original file line number Diff line number Diff line change @@ -304,6 +304,40 @@ const passkeys = {
304
304
console . error ( "cbsecurity-passkeys - Registration failed:" , registrationResponse ) ;
305
305
}
306
306
} ,
307
+ async autocomplete ( redirectLocation = "/" , additionalParams = { } ) {
308
+ if ( ! ( await passkeys . isSupported ( ) ) ) {
309
+ return ;
310
+ }
311
+
312
+ // Make the call that returns the credentialGetJson above
313
+ const credentialGetOptions = await fetch ( "/cbsecurity/passkeys/authentication/new?" + new URLSearchParams ( additionalParams ) )
314
+ . then ( resp => resp . json ( ) )
315
+ . then ( json => JSON . parse ( json ) ) ;
316
+
317
+ // Call WebAuthn ceremony using webauthn-json wrapper
318
+ const publicKeyCredential = await webauthnJSON . get ( {
319
+ mediation : "conditional" ,
320
+ ...credentialGetOptions
321
+ } ) ;
322
+
323
+ // Return encoded PublicKeyCredential to server
324
+ const authenticationResponse = await fetch ( "/cbsecurity/passkeys/authentication" , {
325
+ method : "POST" ,
326
+ headers : {
327
+ "Content-Type" : "application/json"
328
+ } ,
329
+ body : JSON . stringify ( {
330
+ ...additionalParams ,
331
+ "publicKeyCredentialJson" : JSON . stringify ( publicKeyCredential )
332
+ } )
333
+ } ) ;
334
+
335
+ if ( authenticationResponse . ok ) {
336
+ window . location = redirectLocation ;
337
+ } else {
338
+ console . error ( "cbsecurity-passkeys - Authentication failed:" , authenticationResponse ) ;
339
+ }
340
+ } ,
307
341
async login ( username , redirectLocation = "/" , additionalParams = { } ) {
308
342
if ( ! username ) {
309
343
username = "" ;
Original file line number Diff line number Diff line change @@ -43,6 +43,40 @@ const passkeys = {
43
43
console . error ( "cbsecurity-passkeys - Registration failed:" , registrationResponse ) ;
44
44
}
45
45
} ,
46
+ async autocomplete ( redirectLocation = "/" , additionalParams = { } ) {
47
+ if ( ! ( await passkeys . isSupported ( ) ) ) {
48
+ return ;
49
+ }
50
+
51
+ // Make the call that returns the credentialGetJson above
52
+ const credentialGetOptions = await fetch ( "/cbsecurity/passkeys/authentication/new?" + new URLSearchParams ( additionalParams ) )
53
+ . then ( resp => resp . json ( ) )
54
+ . then ( json => JSON . parse ( json ) ) ;
55
+
56
+ // Call WebAuthn ceremony using webauthn-json wrapper
57
+ const publicKeyCredential = await webauthnJSON . get ( {
58
+ mediation : "conditional" ,
59
+ ...credentialGetOptions
60
+ } ) ;
61
+
62
+ // Return encoded PublicKeyCredential to server
63
+ const authenticationResponse = await fetch ( "/cbsecurity/passkeys/authentication" , {
64
+ method : "POST" ,
65
+ headers : {
66
+ "Content-Type" : "application/json"
67
+ } ,
68
+ body : JSON . stringify ( {
69
+ ...additionalParams ,
70
+ "publicKeyCredentialJson" : JSON . stringify ( publicKeyCredential )
71
+ } )
72
+ } ) ;
73
+
74
+ if ( authenticationResponse . ok ) {
75
+ window . location = redirectLocation ;
76
+ } else {
77
+ console . error ( "cbsecurity-passkeys - Authentication failed:" , authenticationResponse ) ;
78
+ }
79
+ } ,
46
80
async login ( username , redirectLocation = "/" , additionalParams = { } ) {
47
81
if ( ! username ) {
48
82
username = "" ;
You can’t perform that action at this time.
0 commit comments