2fauth
v1.0.3
Published
A plug-and-play authentication system with JWT, 2FA, and OAuth.
Maintainers
Readme
2FAuth - Secure Authentication with JWT & 2FA
🚀 2FAuth is a plug-and-play authentication system for Node.js/Express apps, featuring:
✅ User Registration & Login
✅ JWT Authentication
✅ Email Verification
✅ Two-Factor Authentication (2FA)
✅ Password Reset
🏗️ Installation
Install 2FAuth via NPM:
npm install 2fauth🚀 Usage
Import and initialize authentication in your Express app:
const express = require("express");
const { initAuth } = require("2fauth");
const app = express();
app.use(
initAuth({
mongoUrl: "mongodb+srv://your-mongo-db",
jwtSecretKey: "your-secret-key",
emailConfig: {
fromEmail: "[email protected]",
transportOptions: {
service: "gmail",
auth: {
user: process.env.EMAIL_USER,
pass: process.env.EMAIL_PASSWORD,
},
},
},
})
);
app.listen(5000, () => console.log("Auth system running!"));📡 API Endpoints
| Method | Endpoint | Description |
|----------|-----------------------------|--------------------------------|
| POST | /auth/register | Register a new user |
| GET | /auth/verify-email | Verify user email |
| GET | /auth/resend-verification | Verify user email |
| POST | /auth/login | User Login |
| POST | /auth/enable-2fa | Enable 2FA (Generates QR code) |
| POST | /auth/disable-2fa | Disable 2FA |
| POST | /auth/verify-2fa | Verify OTP for 2FA |
| POST | /auth/logout | Logout the user |
| POST | /auth/forgot-password | Initiate password reset |
| POST | /auth/reset-password | Reset password |
| PUT | /auth/change-password | Change the current password |
| GET | /auth/current-user | Fetch Current User |
| PUT | /auth/update-user/:userId | Update the current user |
🚀 Usage Examples
🔹 Register a New User
curl -X POST http://localhost:8000/auth/register \
-H "Content-Type: application/json" \
-d '{
"name": "John Doe",
"email": "[email protected]",
"password": "securepassword"
}'📌 Response (Success)
{
"success": true,
"message": "User registered successfully. Please verify your email"
}🔹 Login a User
curl -X POST http://localhost:8000/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"password": "securepassword"
}'📌 Response (Success)
{
"success": true,
"message": "Login Successful"
}🤝 Contributing
Contributions are welcome! If you find a bug or want to add a feature, feel free to open an issue or submit a PR.
⚖️ License
MIT License - Free to use and modify!
