A flexible and dynamic authentication system for MERN stack applications. This package provides an easy-to-use solution for user signup and login, allowing you to define custom user fields and integrate with MongoDB seamlessly.
- User signup and login
- Dynamic user schema
- Secure password hashing
- JSON Web Token (JWT) authentication
- Easy integration with MongoDB
npm install @an_average_coder/auth_package
{
"userSchema": {
"firstName": {
"type": "String",
"required": true,
"minLength": 1,
"maxLength": 50
},
"middleName": {
"type": "String",
"required": false,
"minLength": 1,
"maxLength": 50
},
"lastName": {
"type": "String",
"required": true,
"minLength": 1,
"maxLength": 50
},
"email": {
"type": "String",
"required": true,
"minLength": 1,
"maxLength": 50
},
"password": {
"type": "String",
"required": true,
"minLength": 1,
"maxLength": 50
},
"username": {
"type": "String",
"required": true,
"minLength": 1,
"maxLength": 50
},
"name": {
"type": "String",
"required": false,
"minLength": 1,
"maxLength": 50
}
},
"saltRound": 10,
"cookieConfig": {
"httpOnly": true
}
}
- MONGO_URI=your_mongo_db_uri
- ACCESS_TOKEN_SECRET="your_secret",
- REFRESH_TOKEN_SECRET="your_refresh_token_secret",
- ACCESS_TOKEN_EXPIRY="1h",
- REFRESH_TOKEN_EXPIRY="7d"
Here's an example of how to use this package in your MERN stack project:
const express = require('express');
const authSystem = require('@an_average_coder/auth_package');
require('dotenv').config();
const app = express();
app.use(express.json());
app.use('/auth', authSystem);
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
Send a POST request to /auth/signup with the following JSON body:
{
"firstName": "Test",
"lastName", "User"
"username": "testuser",
"password": "testpassword",
"email": "test@example.com",
"age": 30
}
Send a POST request to /auth/login with the following JSON body:
{
"username": "testuser",
"password": "testpassword"
}
const express = require('express');
const authSystem = require('@an_average_coder/auth_package');
const { authMiddleware } = require('@an_average_coder/auth_package');
require('dotenv').config();
const app = express();
app.use(express.json());
app.use('/auth', authSystem);
app.get('/protected', authMiddleware, (req, res) => {
res.send('This is a protected route');
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
To run tests, use the following command:
- npx jest
- All notable changes to this project are documented in Changelog.