This module allows you to manage users (login, registration, permission groups, etc.) in an ExpressJS backend. With it, you can easily add user management functionality to your existing project.
You can install the module from npm or copy the files to your project.
npm install @lcaparros/user-management
- Clone the repository or download the files.
- Copy the files to your project.
- Make sure to install the necessary dependencies:
npm install express jsonwebtoken mongoose bcryptjs
- Create a
.env
file at the root of your project with the following variables:
JWT_SECRET=your_jwt_secret_key
- Import and use the module in your Express application:
import express from 'express';
import mongoose from 'mongoose';
import { authRoutes, userRoutes } from '@lcaparros/user-management'; // Or the relative path if you copied the files
const app = express();
const PORT = process.env.PORT || 3000;
app.use(express.json());
// Connect to MongoDB
mongoose.connect(process.env.MONGODB_URI, { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => console.log('MongoDB connected'))
.catch(err => console.log(err));
// Use authentication and user routes
app.use('/api/auth', authRoutes);
app.use('/api/users', userRoutes);
app.listen(PORT, () => {
console.log(`Server running on port ${PORT}`);
});
You can protect your endpoints by adding the authorizeRoles
middleware:
import { authorizeRoles, verifyToken } from '@lcaparros/user-management';
// Protect an endpoint for only admins
app.get('/api/users', verifyToken, authorizeRoles(['admin', 'user_manager']), (req, res) => {
// Your logic here
});
Contributions are welcome! If you'd like to contribute to this project, follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/new-feature
). - Make your changes and commit them (
git commit -am 'Add new feature'
). - Push your branch (
git push origin feature/new-feature
). - Open a Pull Request.
To run the tests, follow these steps:
- Clone the repository and navigate to the project directory.
- Install the dependencies:
npm install
- Start MongoDB. You can do it with Docker using the provided docker-compose file:
docker compose up -d
- Run the tests:
npm test
This project is licensed under the MIT License. See the LICENSE file for details.
We hope this module helps you manage users in your project. If you have any questions or suggestions, feel free to open an issue on the repository.