@typeauth/api-node is a TypeScript library that simplifies the authentication process for your API applications running in node. It's a wrapper around the authentication API endpoint.
- 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
You can install typeauth using npm:
npm install @typeauth/api-node
First, import the typeauth
class from the library:
import { typeauth } from "@typeauth/api-node";
Then, initialize the typeauth
instance with your desired options:
const typeauth = new typeauth({
appId: "YOUR_APP_ID",
// Optional configuration options
baseUrl: "https://api.typeauth.com",
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);
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 totrue
to disable telemetry data collection. Defaults tofalse
.maxRetries
(optional): The number of tries in case the typeauth API is not responding. Defaults to3
.retryDelay
(optional): // The number of milisendseconds before send another requests. Defauls to1000
.
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.
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.