men-boilerplate
v1.1.2
Published
A production-grade, ESM-ready authentication and session management boilerplate. Scaffolds a complete auth system in seconds.
Readme
MEN Auth Boilerplate (MongoDB, Express, Node.js)
A production-grade, ESM-ready authentication and session management boilerplate. Scaffolds a complete auth system in seconds.
🚀 Features
- 100% ES Modules (ESM): Modern, future-proof JavaScript.
- JWT Authentication: Secure Access & Refresh token rotation.
- Session Management: Track and manage active sessions (device, IP mapping).
- Persistent Sessions: Multi-device support with remote revocation (force logout).
- Standard CRUD Factory: Pre-built logic for MongoDB models.
- Clean Architecture: Separation of concerns across controllers, routes, models, and middleware.
🛠 Installation
Run the following command to scaffold a new project:
npx men-setup my-auth-appNote: Replace men-boilerplate-setup with the actual package name after publication.
📂 Project Structure
src/
├── auth/ # Middleware and JWT logic
├── config/ # DB and environment configuration
├── controllers/ # Request handlers (Auth, Sessions)
├── crud/ # Reusable CRUD factory
├── middleware/ # Global error and log handlers
├── models/ # Mongoose schemas (User, Session)
├── routes/ # Express routing
└── utils/ # API Response helpers🔐 Session Management Endpoints
| Method | Endpoint | Description |
| :--- | :--- | :--- |
| POST | /api/v1/auth/sign-up | Create a new user |
| POST | /api/v1/auth/login | Login and start a new session |
| GET | /api/v1/auth/me | Get current user profile (Protected) |
| POST | /api/v1/auth/refresh | Rotate tokens using active session |
| GET | /api/v1/auth/sessions | List all active sessions/devices |
| DELETE | /api/v1/auth/sessions/:id | Revoke a session (Remote logout) |
| POST | /api/v1/auth/logout | Clear current session and cookies |
⚙️ Environment Variables
Create a .env file in the root:
PORT=5000
MONGO_URI=mongodb://localhost:27017/auth-db
JWT_SECRET=your_jwt_secret
REFRESH_SECRET=your_refresh_secret
NODE_ENV=development📝 License
ISC
