authenticus
v4.1.1
Published
The simplest all-in-one authentication library for JavaScript.
Downloads
3
Readme
authenticus
authenticus is a all-in-one authentication library for Node.js, Deno, Cloudflare Workers, etc.
Setup
Node.js
npm i authenticus
Deno
deno.json
{
"imports": {
"authenticus": "https://esm.sh/[email protected]"
}
}
OAuth 2.0
Presets:
[!IMPORTANT]
You should wrap your code within a try...catch block, as each of the methods listed below can cause anAuthenticusError
in some rare cases.
import { GitHub } from 'authenticus'
Initialize client.
const github = new GitHub({ clientId: '...', clientSecret: '...', scopes: [ 'read:user', 'user:email' ] // optional })
Create a authorization url.
const url = github.createAuthorizeUri({ state: '...', allowSignup: true })
Retrieve an access token.
const { accessToken } = await github.getToken({ code: '...', redirectUri: 'https://example.com/oauth2/callback' })
Retrieve the user.
const user = await github.getUser(accessToken) , normalizedUser = github.normalizeUser(user)
JWT
authenticus' JWT implementation is based on @timonson's djwt, which is available under the MIT license.
import { jwt } from 'authenticus'
jwt.sign(...)
Please refer to this page for a full guide.
OTP
authenticus' OTP implementation is based on @hectorm's otpauth, which is available under the MIT license.
import { otp } from 'authenticus'
// 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>')