summaryrefslogtreecommitdiffhomepage
path: root/packages/server/src
diff options
context:
space:
mode:
authorMatthew Miller <matthew@millerti.me>2021-02-02 14:24:59 -0800
committerMatthew Miller <matthew@millerti.me>2021-02-02 14:24:59 -0800
commit2ec7ddfa729730e7fe6a24ef3a6514913018f046 (patch)
tree6f2a606ef192d43548d972288f222c39ad0bdc6a /packages/server/src
parentfdc6315d2cb39017efbc5eb6c705b276e4ace587 (diff)
Add new generateUserHandle helper
Diffstat (limited to 'packages/server/src')
-rw-r--r--packages/server/src/helpers/generateUserHandle.ts16
1 files changed, 16 insertions, 0 deletions
diff --git a/packages/server/src/helpers/generateUserHandle.ts b/packages/server/src/helpers/generateUserHandle.ts
new file mode 100644
index 0000000..be3f838
--- /dev/null
+++ b/packages/server/src/helpers/generateUserHandle.ts
@@ -0,0 +1,16 @@
+import crypto from 'crypto';
+
+/**
+ * Generate a suitably random value to be used as a user handle when creating a credential
+ */
+export default function generateUserHandle(): Buffer {
+ /**
+ * As per WebAuthn spec:
+ *
+ * "A user handle is an opaque byte sequence with a maximum size of 64 bytes, and is not meant to
+ * be displayed to the user."
+ *
+ * See https://w3c.github.io/webauthn/#user-handle
+ */
+ return crypto.randomBytes(64);
+}