Observed since 20 Oct, 19:13 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
2fauth
A plug-and-play authentication system with JWT, 2FA, and OAuth.
🚀 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
Install 2FAuth via NPM:
npm install 2fauth
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: "noreply@example.com",
transportOptions: {
service: "gmail",
auth: {
user: process.env.EMAIL_USER,
pass: process.env.EMAIL_PASSWORD,
},
},
},
})
);
app.listen(5000, () => console.log("Auth system running!"));
| 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 |
curl -X POST http://localhost:8000/auth/register \
-H "Content-Type: application/json" \
-d '{
"name": "John Doe",
"email": "johndoe@example.com",
"password": "securepassword"
}'
{
"success": true,
"message": "User registered successfully. Please verify your email"
}
curl -X POST http://localhost:8000/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "johndoe@example.com",
"password": "securepassword"
}'
{
"success": true,
"message": "Login Successful"
}
Contributions are welcome! If you find a bug or want to add a feature, feel free to open an issue or submit a PR.
MIT License - Free to use and modify!
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
corsEnvironment{
"local_name": "cors",
"alias": false,
"peer_metadata": null
} | ^2.8.5 | runtime |
dotenvEnvironment{
"local_name": "dotenv",
"alias": false,
"peer_metadata": null
} | ^16.4.7 | runtime |
qrcodeEnvironment{
"local_name": "qrcode",
"alias": false,
"peer_metadata": null
} | ^1.5.4 | runtime |
expressEnvironment{
"local_name": "express",
"alias": false,
"peer_metadata": null
} | ^4.18.2 | runtime |
bcryptjsEnvironment{
"local_name": "bcryptjs",
"alias": false,
"peer_metadata": null
} | ^2.4.3 | runtime |
mongooseEnvironment{
"local_name": "mongoose",
"alias": false,
"peer_metadata": null
} | ^7.5.0 | runtime |
speakeasyEnvironment{
"local_name": "speakeasy",
"alias": false,
"peer_metadata": null
} | ^2.0.0 | runtime |
nodemailerEnvironment{
"local_name": "nodemailer",
"alias": false,
"peer_metadata": null
} | ^6.9.7 | runtime |
jsonwebtokenEnvironment{
"local_name": "jsonwebtoken",
"alias": false,
"peer_metadata": null
} | ^9.0.0 | runtime |
cookie-parserEnvironment{
"local_name": "cookie-parser",
"alias": false,
"peer_metadata": null
} | ^1.4.7 | runtime |
Source distribution
{
"shasum": "ca233d7b53c2178278f5707aeaa81a3aceb99647",
"tarball": "https://registry.npmjs.org/2fauth/-/2fauth-1.0.0.tgz",
"fileCount": 7,
"integrity": "sha512-d6EArc9VYYPpFYKxqnhCJG5Fr4qDe6wveqmJqqfI4Hzal9Md+BbIgRkE61GvAyvB9+7j0CYlCa+w+NFso6l8fA==",
"signatures": [
{
"sig": "MEUCIQCdBFwewzFkP2npAChQI01O97LFrkdKSqAiXFrZ3jtHSQIgIpMY2thKQekBpW7ROURGaZIXRw3G2hUoKmnTO8q5zUA=",
"keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"
}
],
"unpackedSize": 11698
}Observed since 20 Oct, 19:13 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:10fd4ff3cc8bbcd1e2d52fe4fb0f434861a68586797aa76fcab50a1a1f0f6bc2