# JANUX Authentication Gateway

[![Python](https://img.shields.io/badge/Python-3.10%2B-darkcyan)](https://pypi.org/project/janux-auth-gateway/)
[![PyPI - Version](https://img.shields.io/pypi/v/janux-auth-gateway?label=PyPI%20Version&color=green)](https://pypi.org/project/janux-auth-gateway/)
[![PyPI Downloads](https://static.pepy.tech/badge/janux-auth-gateway)](https://pepy.tech/projects/janux-auth-gateway)
[![License: Apache 2.0](https://img.shields.io/badge/License-Apache--2.0-orange.svg)](https://github.com/fox-techniques/janux-auth-gateway/blob/main/LICENSE)
[![GitHub](https://img.shields.io/badge/GitHub-janux--auth--gateway-181717?logo=github)](https://github.com/fox-techniques/janux-auth-gateway)

**JANUX Authentication Gateway** is a high-performance, modular, and extensible authentication microservice built with **FastAPI**. It provides secure user and admin authentication, JWT management, and seamless MongoDB integration via Beanie ODM and PostgreSQL via SQLAlchemy. Designed for developers and organizations, JANUX ensures scalability, flexibility, and security—making it ideal for **SaaS platforms, APIs, and enterprise applications** that require a robust authentication system.


## Documentation

The complete documentation is available on **[GitHub Pages](https://fox-techniques.github.io/janux-auth-gateway/)**.


## Key Features

- **FastAPI-based** – Asynchronous, high-performance authentication.
- **JWT Authentication & Token Management** – Secure access and refresh tokens.
- **Role-Based Access Control (RBAC)** – Admins, users, and fine-grained permissions.
- **MongoDB with Beanie ODM** – Flexible user and admin management.
- **PostgreSQL via SQLAlchemy** – User and admin management via PostgreSQL.
- **Secure Password Hashing** – Uses Argon2 & Bcrypt for industry-leading security.
- **Cryptographic Key Support** – RSA, Ed25519, and ECDSA for secure key management.
- **Redis-Based Token Blacklisting** – Prevents reuse of revoked tokens.
- **CORS Middleware** – Configurable allowed origins for API security.
- **Modular & Extensible** – Easily customizable for different authentication workflows.
- **Deploy Anywhere** – Works in Docker, Kubernetes, and serverless environments.


## Why **JANUX**?

**JANUX** is developer-friendly, scalable, and production-ready. It eliminates the complexity of authentication by providing a plug-and-play solution for handling users, roles, security, and authentication tokens—so you can focus on building your core application.

## Use **JANUX** if you need:

- A ready-to-use authentication system **for APIs and SaaS apps**.
- A secure and scalable solution with **RBAC & JWT**.
- Flexibility to extend authentication workflows.
- Modern authentication standards with **FastAPI, MongoDB/PostgreSQL, and Redis**.

---
