Skip to content
/ hono Public

@typeauth/hono is the Hono middleware that simplifies the authentication process for your API applications running in Hono JS. It's a wrapper around the authentication API endpoint.

Notifications You must be signed in to change notification settings

typeauth/hono

Repository files navigation

Typescript typeauth library

@typeauth/hono is the Hono middleware that simplifies the authentication process for your API applications running in Hono JS. It's a wrapper around the authentication API endpoint."

Features

  • Simple and intuitive API for authentication
  • Customizable options for initialization
  • Support for custom token headers
  • Telemetry data collection (can be disabled)
  • Customizable opetion for retry and delay
  • Comprehensive error handling and documentation references

Installation

You can install typeauth using npm:

npm install @typeauth/hono

Usage

First, import the typeauth class from the library:

import { typeauth } from "@typeauth/hono";

Then, initialize the typeauth instance with your desired options:

const typeauth = new typeauth({
  appId: "YOUR_APP_ID",
  // Optional configuration options
  tokenHeader: "Authorization",
  disableTelemetry: false,
  maxRetries: 5,
  retryDelay: 2000,
});

To authenticate a request, call the authenticate method with the request object:

const express = require("express");
const { Typeauth } = require("@typeauth/api-node");

const app = express();

// Initialize the Typeauth client
const typeauth = new Typeauth({
  appId: "YOUR_APP_ID",
  // Other options if needed
});

// Middleware to authenticate POST requests
const authenticatePostRequest = async (req, res, next) => {
  if (req.method === "POST") {
    const { result, error } = await typeauth.authenticate(req);

    if (error) {
      console.error(error.message);
      return res.status(401).json({ error: "Unauthorized" });
    }

    return res.status(200).json({ message: "OK" });
    next();
  } else {
    // If not a POST request, proceed to the next middleware or route handler
    next();
  }
};

// Apply the authentication middleware to all routes
app.use(authenticatePostRequest);

Configuration Options

The typeauth constructor accepts an options object with the following properties:

  • appId (required): Your typeauth application ID.
  • tokenHeader (optional): The name of the header that contains the authentication token. Defaults to 'Authorization'.
  • disableTelemetry (optional): Set to true to disable telemetry data collection. Defaults to false.
  • maxRetries (optional): The number of tries in case the typeauth API is not responding. Defaults to 3.
  • retryDelay (optional): // The number of milisendseconds before send another requests. Defauls to 1000.

Error Handling

The authenticate method returns an object with either a result property (on success) or an error property (on failure). The error object contains the following properties:

  • message: A description of the error.
  • docs: A URL to the relevant documentation page for more information about the error.

Make sure to handle errors appropriately in your application logic.

Contributing

Contributions are welcome! If you find any issues or have suggestions for improvement, please open an issue or submit a pull request on the this GitHub repository.

About

@typeauth/hono is the Hono middleware that simplifies the authentication process for your API applications running in Hono JS. It's a wrapper around the authentication API endpoint.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published