summaryrefslogtreecommitdiffhomepage
path: root/packages/server/src/assertion/generateAssertionOptions.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/server/src/assertion/generateAssertionOptions.ts')
-rw-r--r--packages/server/src/assertion/generateAssertionOptions.ts35
1 files changed, 22 insertions, 13 deletions
diff --git a/packages/server/src/assertion/generateAssertionOptions.ts b/packages/server/src/assertion/generateAssertionOptions.ts
index b30344d..035c2da 100644
--- a/packages/server/src/assertion/generateAssertionOptions.ts
+++ b/packages/server/src/assertion/generateAssertionOptions.ts
@@ -2,6 +2,13 @@ import type {
PublicKeyCredentialRequestOptionsJSON,
} from '@simplewebauthn/typescript-types';
+type Options = {
+ challenge: string,
+ allowedBase64CredentialIDs: string[],
+ suggestedTransports?: AuthenticatorTransport[],
+ timeout?: number,
+};
+
/**
* Prepare a value to pass into navigator.credentials.get(...) for authenticator "login"
*
@@ -12,20 +19,22 @@ import type {
* @param suggestedTransports Suggested types of authenticators for assertion
*/
export default function generateAssertionOptions(
- challenge: string,
- timeout = 60000,
- allowedBase64CredentialIDs: string[],
- suggestedTransports: AuthenticatorTransport[] = ['usb', 'ble', 'nfc', 'internal'],
+ opts: Options,
): PublicKeyCredentialRequestOptionsJSON {
+ const {
+ challenge,
+ allowedBase64CredentialIDs,
+ suggestedTransports = ['usb', 'ble', 'nfc', 'internal'],
+ timeout = 60000,
+ } = opts;
+
return {
- publicKey: {
- challenge,
- allowCredentials: allowedBase64CredentialIDs.map(id => ({
- id,
- type: 'public-key',
- transports: suggestedTransports,
- })),
- timeout,
- },
+ challenge,
+ allowCredentials: allowedBase64CredentialIDs.map(id => ({
+ id,
+ type: 'public-key',
+ transports: suggestedTransports,
+ })),
+ timeout,
};
}