express-mongo-jwt
v1.0.0
Published
A reusable middleware for JWT authentication in Express.js & MongoDB applications.
Maintainers
Readme
Utilisation
Pour utiliser ce middleware dans votre application Express.js :
Installez le package et ses dépendances :
npm install express-mongo-jwt passport passport-jwt mongoose dotenv # Assurez-vous d'avoir Mongoose si ce n'est pas déjà le casConfigurez votre modèle utilisateur et votre clé secrète :
Assurez-vous d'avoir un modèle Mongoose pour vos utilisateurs (par exemple,
models/User.js) et une clé secrète JWT définie dans vos variables d'environnement (.env).Exemple de
models/User.js(simplifié) :import mongoose from 'mongoose'; const UserSchema = new mongoose.Schema({ username: { type: String, required: true, unique: true }, email: { type: String, required: true, unique: true }, password: { type: String, required: true }, // ... autres champs }); const User = mongoose.model('User', UserSchema); export default User;Exemple de
.env:SECRET_KEY="votre_super_cle_secrete_ultra_securisee_pour_les_jwt"Initialisez le middleware dans votre application Express :
Importez le module, initialisez Passport, puis configurez le middleware en lui passant votre
secretKeyet votreUserMongoose.// app.js ou index.js de votre application Express import express from 'express'; import { configDotenv } from 'dotenv'; import passport from 'passport'; // N'oubliez pas d'importer passport ici aussi import User from './models/User.js'; // Votre modèle utilisateur Mongoose import initializeMongoJwtAuth from 'express-mongo-jwt'; // Importez votre package configDotenv(); // Chargez vos variables d'environnement const app = express(); app.use(express.json()); // --- Étape 1 : Initialiser Passport --- app.use(passport.initialize()); // --- Étape 2 : Initialiser votre middleware d'authentification --- const isAuthenticated = initializeMongoJwtAuth({ secretKey: process.env.SECRET_KEY, // La clé secrète de votre application UserCollection: User // Votre modèle utilisateur Mongoose }); // --- Étape 3 : Protégez vos routes avec isAuthenticated --- app.get('/api/profil', isAuthenticated, (req, res) => { // Si l'authentification est réussie, `req.user` contient l'objet utilisateur res.json({ message: 'Bienvenue sur votre profil !', user: req.user }); }); // ... Vos autres routes (login, register, etc.) const PORT = process.env.PORT || 3000; app.listen(PORT, () => { console.log(`Serveur démarré sur le port ${PORT}`); });
En combinant ces deux approches (JSDoc dans le code et un README.md détaillé), vous offrez la meilleure expérience possible aux développeurs qui utiliseront votre package.
