@mattygt86/daturetech-auth-library
v0.0.7
Published
A TypeScript authentication library with provider abstraction
Readme
# DatureTech Authentication Library
The **DatureTech Authentication Library** provides an easy-to-use authentication solution for Express.js applications. It integrates with **Auth0** and provides middleware for handling authentication and authorization.
---
## **Features**
- 🚀 Simple middleware integration for authentication.
- 🔐 Secure token verification using **Auth0**.
- ✅ Role-based authorization support.
- 📦 Lightweight and easy to install.
---
## **Installation**
You can install the library via **npm**:
```sh
npm install daturetech-auth-libraryIf using a local package reference:
npm install file:../daturetech-auth-library/distUsage
1. Import the Library
In your Express.js application, import and initialize the authentication middleware:
import express from "express";
import { AuthMiddleware } from "daturetech-auth-library";
const app = express();
// Initialize authentication middleware
const authMiddleware = new AuthMiddleware({
domain: process.env.AUTH0_DOMAIN,
audience: process.env.AUTH0_AUDIENCE,
});
app.use(authMiddleware.protect()); // Apply authentication globally
app.get("/protected-route", authMiddleware.protect(), (req, res) => {
res.json({ message: "You have accessed a protected route!" });
});
app.listen(5000, () => console.log("Server running on port 5000"));Configuration
Ensure you have the required environment variables set in your .env file:
AUTH0_DOMAIN=your-auth0-domain
AUTH0_AUDIENCE=your-auth0-audienceAPI Reference
authMiddleware.protect()
Middleware function that protects routes by verifying the user's JWT.
app.use(authMiddleware.protect());authMiddleware.checkRole(role: string)
Middleware function to restrict access based on user roles.
app.get("/admin", authMiddleware.checkRole("admin"), (req, res) => {
res.json({ message: "Welcome, Admin!" });
});Development & Contribution
- Clone the repository:
git clone https://github.com/MattyGT/daturetech-auth-library.git - Install dependencies:
npm install - Build the library:
npm run build - Run tests:
npm test
Publishing the Package
To publish updates to npm, follow these steps:
- Bump the version in
package.json:npm version patch - Publish the package:
npm publish --access public
License
This project is licensed under the MIT License.
Support
For issues, please open a GitHub issue in the repository.
This provides a professional and comprehensive `README.md` that covers installation, usage, API references, and contribution guidelines. Let me know if you need any modifications! 🚀