diff options
-rw-r--r-- | packages/server/src/assertion/generateAssertionOptions.test.ts | 15 | ||||
-rw-r--r-- | packages/server/src/assertion/generateAssertionOptions.ts | 4 |
2 files changed, 16 insertions, 3 deletions
diff --git a/packages/server/src/assertion/generateAssertionOptions.test.ts b/packages/server/src/assertion/generateAssertionOptions.test.ts index fe4feb7..bd2d48d 100644 --- a/packages/server/src/assertion/generateAssertionOptions.test.ts +++ b/packages/server/src/assertion/generateAssertionOptions.test.ts @@ -34,9 +34,7 @@ test('defaults to 60 seconds if no timeout is specified', () => { }); test('should not set userVerification if not specified', () => { - const options = generateAssertionOptions({ - ...goodOpts1, - }); + const options = generateAssertionOptions(goodOpts1); expect(options.userVerification).toEqual(undefined); }); @@ -50,6 +48,17 @@ test('should set userVerification if specified', () => { expect(options.userVerification).toEqual('required'); }); +test('should set extensions if specified', () => { + const options = generateAssertionOptions({ + ...goodOpts1, + extensions: { appid: 'simplewebauthn' }, + }); + + expect(options.extensions).toEqual({ + appid: 'simplewebauthn', + }); +}); + const goodOpts1 = { challenge: 'totallyrandomvalue', allowedBase64CredentialIDs: [ diff --git a/packages/server/src/assertion/generateAssertionOptions.ts b/packages/server/src/assertion/generateAssertionOptions.ts index 1e6a4e6..9444a54 100644 --- a/packages/server/src/assertion/generateAssertionOptions.ts +++ b/packages/server/src/assertion/generateAssertionOptions.ts @@ -8,6 +8,7 @@ type Options = { suggestedTransports?: AuthenticatorTransport[], timeout?: number, userVerification?: UserVerificationRequirement, + extensions?: AuthenticationExtensionsClientInputs, }; /** @@ -20,6 +21,7 @@ type Options = { * @param suggestedTransports Suggested types of authenticators for assertion * @param userVerification Set to `'discouraged'` when asserting as part of a 2FA flow, otherwise * set to `'preferred'` or `'required'` as desired. + * @param extensions Additional plugins the authenticator or browser should use during assertion */ export default function generateAssertionOptions( options: Options, @@ -30,6 +32,7 @@ export default function generateAssertionOptions( suggestedTransports = ['usb', 'ble', 'nfc', 'internal'], timeout = 60000, userVerification, + extensions, } = options; return { @@ -41,5 +44,6 @@ export default function generateAssertionOptions( })), timeout, userVerification, + extensions, }; } |