Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@draftbit/hapi-airtable-authentication-plugin

Package Overview
Dependencies
Maintainers
2
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@draftbit/hapi-airtable-authentication-plugin

Plugin to add JWT-based authentication to a Hapi server using Airtable as a data store

  • 1.1.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
2
Created
Source

Hapi Airtable Authentication Plugin

A plugin that adds JWT-based authentication to a Hapi server, utilizing Airtable as a data store. It will trigger a callback function with a verification callback url that can be used to send an email with a "magic link" style confirmation button.

Usage

Register the plugin with your Hapi server by doing the following:

await server.register({
  plugin: require("@draftbit/hapi-airtable-authentication-plugin"),
  options: {
    airtableBase: AIRTABLE_BASE,
    airtableApiToken: AIRTABLE_API_TOKEN,
    jwtSecret: JWT_SECRET,
    apiUrl: API_URL,
    verifyCallback: ({ email, verificationUrl, loginCode }) => {}
  }
});

In Airtable, you must have a table called Users, with the following columns:

  • email, of type Email
  • login_code, of type Single line text
  • email_confirmed, of type Checkbox

The following three routes will be added to your server:

  • /verify - Generates a JWT token and triggers the first step in the authentication process, calling verifyCallback. The following query parameters are required:
    • email - The email address of the authenticating user
    • linkingUri - The linking URI the user will be redirected to after sign in confirmation.
  • /confirm - The route hit when the user navigates to the verificationUrl passed in verifyCallback. The user will be redirected to the linkingUri passed in the previous step, along with userId and token query params. The following query parameters are required, and are already included in the verificationUrl returned in the previous step:
    • token
    • linkingUri
  • /confirm-code - This endpoint exists to support the user manually entering the five digit code returned in verifyCallback, rather than clicking the "magic link" sent in the email. The following query paramters are required:
    • email - The user's email address
    • code - The five digit code returned in verifyCallback

Options

All options are required.

  • airtableBase - The ID of the Airtable Base you wish to interact with
  • airtableApiToken - Your Airtable API key
  • jwtSecret - A string containing the secret for the HMAC algorithm. See jsonwebtoken docs for more information
  • apiUrl - The URL that the Hapi server is public accessible from. This will be used to generate the callback URL
  • verifyCallbacak - A function that accepts an object with email, verificationUrl, and loginCode keys. This is called after /verify is called

FAQs

Package last updated on 22 Oct 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc