summaryrefslogtreecommitdiffhomepage
path: root/packages/server/src/assertion/generateAssertionOptions.ts
diff options
context:
space:
mode:
authorMatthew Miller <matthew@millerti.me>2020-05-22 10:34:40 -0700
committerGitHub <noreply@github.com>2020-05-22 10:34:40 -0700
commit27d2104bfd297ac6e6e6ffe17ad12ad9dcd1bd3d (patch)
treec6c005074f78ef079d1195acbf03f6abd31bc562 /packages/server/src/assertion/generateAssertionOptions.ts
parentd9074ec54935aa2155151d2dd9dea0974f33da29 (diff)
parent1038e1a9bb04a1b638248ff6cf7d57c21304a668 (diff)
Merge pull request #1 from MasterKale/feature/lerna
feature/monorepo
Diffstat (limited to 'packages/server/src/assertion/generateAssertionOptions.ts')
-rw-r--r--packages/server/src/assertion/generateAssertionOptions.ts28
1 files changed, 28 insertions, 0 deletions
diff --git a/packages/server/src/assertion/generateAssertionOptions.ts b/packages/server/src/assertion/generateAssertionOptions.ts
new file mode 100644
index 0000000..e9693fa
--- /dev/null
+++ b/packages/server/src/assertion/generateAssertionOptions.ts
@@ -0,0 +1,28 @@
+import { PublicKeyCredentialRequestOptionsJSON } from '@webauthntine/typescript-types';
+
+
+/**
+ * Prepare a value to pass into navigator.credentials.get(...) for authenticator "login"
+ *
+ * @param challenge Random string the authenticator needs to sign and pass back
+ * @param base64CredentialIDs Array of base64-encoded authenticator IDs registered by the user for
+ * assertion
+ * @param timeout How long (in ms) the user can take to complete attestation
+ */
+export default function generateAssertionOptions(
+ challenge: string,
+ base64CredentialIDs: string[],
+ timeout: number = 60000,
+): PublicKeyCredentialRequestOptionsJSON {
+ return {
+ publicKey: {
+ challenge,
+ allowCredentials: base64CredentialIDs.map(id => ({
+ id,
+ type: 'public-key',
+ transports: ['usb', 'ble', 'nfc'],
+ })),
+ timeout,
+ },
+ };
+}