Skip to content

WebAuthn, Simplified. A collection of TypeScript-first libraries for simpler WebAuthn integration. Supports modern browsers, Node, Deno, and more.

License

Notifications You must be signed in to change notification settings

Doankimtuan/SimpleWebAuthn

 
 

Repository files navigation

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 20.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.

Contributions

The SimpleWebAuthn project is currently open to Pull Requests for bug fixes only. Please submit an Issue beforehand to capture additional context about the problem being solved.

Requests for new features or changes to existing features require time for discussion to synthesize solutions from modern needs and historical context. Feel free to create an Issue for these types of requests to start this discussion.

Development

Install the following before proceeding:

  • Node.js 18.x
  • Deno 1.41.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

About

WebAuthn, Simplified. A collection of TypeScript-first libraries for simpler WebAuthn integration. Supports modern browsers, Node, Deno, and more.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 99.4%
  • Other 0.6%