Skip to main content
Using Deno in production at your company? Earn free Deno merch.
Give us feedback

authenticus

authenticus is a all-in-one authentication library for Node.js, Deno, Cloudflare Workers, etc.

Setup

npm i authenticus

JWT

authenticus’ JWT implementation is based on @timonson’s djwt, which is available under the MIT license.

Usage

import * as jwt from 'authenticus/jwt'

jwt.sign(...)

Please refer to this page for a full guide.

OAuth 2.0

Presets

Usage

Important

You should wrap your code within a try…catch block, as each of the methods listed below can cause an AuthenticusError in some rare cases.

import { GitHub } from 'authenticus/oauth'
  1. Initialize client.

    const github = new GitHub({
      clientId: '...',
      clientSecret: '...',
      scopes: [
        'read:user',
        'user:email'
      ] // optional
    })
  2. Create a authorization url.

    const url = github.createAuthorizeUri({
      state: '...',
      allowSignup: true
    })
  3. Retrieve an access token.

    const { accessToken } = await github.getToken({
      code: '...',
      redirectUri: 'https://example.com/oauth2/callback'
    })
  4. Retrieve the user.

    const user = await github.getUser(accessToken)
    
    , normalizedUser = github.normalizeUser(user)

OTP

authenticus’ OTP implementation is based on @hectorm’s otpauth, which is available under the MIT license.

Usage

import * as otp from 'authenticus/otp'

// Generate a random secret.
const secret = otp.createRandomSecret()

// Create an URI for a QR code for Google Authenticator.
const uri = otp.createUri(secret, 'Issuer', 'Label')

// Get the current OTP.
const token = otp.createToken(secret)

// Check the validity of a token.
const result = otp.isValid(secret, '<token>')