diff options
Diffstat (limited to 'packages/server/src/authentication/generateAuthenticationOptions.ts')
-rw-r--r-- | packages/server/src/authentication/generateAuthenticationOptions.ts | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/packages/server/src/authentication/generateAuthenticationOptions.ts b/packages/server/src/authentication/generateAuthenticationOptions.ts index 1eab513..4c841d9 100644 --- a/packages/server/src/authentication/generateAuthenticationOptions.ts +++ b/packages/server/src/authentication/generateAuthenticationOptions.ts @@ -5,6 +5,7 @@ import type { UserVerificationRequirement, } from '@simplewebauthn/typescript-types'; import base64url from '../helpers/base64url' +import uint8Array from '../helpers/uint8Array'; import { generateChallenge } from '../helpers/generateChallenge'; @@ -42,6 +43,14 @@ export function generateAuthenticationOptions( rpID, } = options; + /** + * Preserve ability to specify `string` values for challenges + */ + let _challenge = challenge; + if (typeof _challenge === 'string') { + _challenge = uint8Array.fromString(_challenge); + } + return { challenge: base64url.fromBuffer(_challenge), allowCredentials: allowCredentials?.map(cred => ({ |