@semaphore-protocol/heyauthn
TypeScript icon, indicating that this package has built-in type declarations

4.0.0-beta.7 • Public • Published

HeyAuthn

A library to allow developers to create and manage Semaphore identities using WebAuthn.

NPM license NPM version Downloads Documentation typedoc Linter eslint Code style prettier

This library allows developers to create and manage Semaphore identities using WebAuthn as a cross-device biometric authentication in a way that is more convenient, smoother and secure than localStorage, Chrome extensions, or password manager based solutions.

🛠 Install

npm or yarn

Install the @semaphore-protocol/heyauthn package with npm:

npm i @semaphore-protocol/heyauthn

or yarn:

yarn add @semaphore-protocol/heyauthn

📜 Usage

For more information on the functions provided by @semaphore-protocol/heyauthn, please refer to the TypeDoc documentation.

import { HeyAuthn } from "@semaphore-protocol/heyauthn"

// STEP 1: Configure WebAuthn options.

const options = {
    rpName: "my-app",
    rpID: window.location.hostname,
    userID: "my-id",
    userName: "my-name"
}

// STEP 2: Register a new WebAuthn credential and get its Semaphore identity.

const { identity } = await HeyAuthn.fromRegister(options)

// Now you could also save the identity commitment in your DB (pseudocode).
fetch("/api/register" /* Replace this with your endpoint */, {
    identity.commitment
    // ...
})

// STEP 3: Authenticate existing WebAuthn credential and signal.

const { identity } = await HeyAuthn.fromRegister(options)

// Get existing group and signal anonymously (pseudocode).
import { Group } from "@semaphore-protocol/group"
import { generateProof } from "@semaphore-protocol/proof"
import { utils } from "ethers"

const group = new Group()

group.addMembers(memberList)

const message = utils.formatBytes32String("Hey anon!")

generateProof(identity, group, message, group.root)

Authors

Readme

Keywords

none

Package Sidebar

Install

npm i @semaphore-protocol/heyauthn

Weekly Downloads

0

Version

4.0.0-beta.7

License

MIT

Unpacked Size

15.3 kB

Total Files

9

Last publish

Collaborators

  • vplasencia
  • cedoor