SimpleWebAuthn Project

WebAuthn npm (scoped)

Overview

This monorepo contains two complimentary libraries to help reduce the amount of work needed to incorporate WebAuthn into a website. The following packages are maintained here:

An additional package is also included that contains shared TypeScript definitions:

See these packages’ READMEs for more specific implementation information.

API Documentation

In-depth documentation for all of the packages in this project is available here: https://simplewebauthn.dev/docs/

Installation

These packages are all available on npm for use in Node LTS 16.x projects:

npm install @simplewebauthn/browser
npm install @simplewebauthn/server
npm install @simplewebauthn/typescript-types

The following packages are available for import into Deno v1.33.x projects from deno.land/x:

import {...} from 'https://deno.land/x/simplewebauthn/deno/server.ts';
import {...} from 'https://deno.land/x/simplewebauthn/deno/typescript-types.ts';

Example

For a practical guide to implementing these libraries, take a look at the example project. It includes a single-file Express server and a few HTML files that, combined with the packages in this repo, are close to all it takes to get up and running with WebAuthn.

Development

Install the following before proceeding:

  • Node.js 18
  • Deno 1.36.x

After pulling down the code, set up dependencies:

$> npm install

To run unit tests for all workspace packages, use the test series of scripts:

# Run All tests
$> npm run test
# Run an individual package's tests
$> npm run test:browser
$> npm run test:server

Tests can be run in watch mode with the dev series of scripts:

$> npm run dev:browser
$> npm run dev:server