SimpleWebAuthn Project
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 and supports both CommonJS and ECMAScript modules (ESM):
npm install @simplewebauthn/browser
npm install @simplewebauthn/server
npm install @simplewebauthn/types
The server and types packages are also available for import into Deno v1.33.x projects from deno.land/x:
import {...} from 'https://deno.land/x/simplewebauthn/deno/server.ts';
import type {...} from 'https://deno.land/x/simplewebauthn/deno/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.x
- Deno 1.36.x
- pnpm 8.6.x
After pulling down the code, set up dependencies:
$> pnpm run bootstrap-monorepo
To run unit tests for all workspace packages, use the test
series of scripts:
# Run All tests
$> pnpm run test
# Run an individual package's tests
$> pnpm run test:browser
$> pnpm run test:server
Tests can be run in watch mode with the dev
series of scripts:
$> pnpm run dev:browser
$> pnpm run dev:server