diff options
author | Matthew Miller <matthew@millerti.me> | 2020-05-27 08:05:53 -0700 |
---|---|---|
committer | Matthew Miller <matthew@millerti.me> | 2020-05-27 08:05:53 -0700 |
commit | b16908dc6a3e4b5989a289d70333673c8ab6ea2d (patch) | |
tree | 874541d70e3b89bfe28567d794f4a8a14d7233b5 /packages/server/src | |
parent | 286ec13aaa06a508ae9b6949c74d62d09087507a (diff) |
Add support for extensions in assertion options
Diffstat (limited to 'packages/server/src')
-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, }; } |