


Comment créer un système de gestion des autorisations à l'aide de Node.js
À mesure que la complexité des applications Web augmente, la gestion des autorisations devient de plus en plus importante. La gestion des utilisateurs et des rôles des utilisateurs, ainsi que la restriction de l'accès à certaines pages, sont devenues un élément essentiel des applications Web. Node.js est un environnement JavaScript côté serveur très populaire qui permet de créer des applications Web efficaces. Dans cet article, nous apprendrons comment créer un système de gestion des autorisations à l'aide de Node.js.
Qu'est-ce que la gestion des autorisations ?
La gestion des autorisations est le processus de contrôle de ce à quoi les utilisateurs peuvent accéder et effectuer. Cela implique la gestion des utilisateurs et des rôles d'utilisateurs, l'allocation des ressources et des autorisations, etc.
Dans une application Web, la gestion des autorisations est très importante, qu'il s'agisse de protéger les informations sensibles ou de contrôler les autorisations d'accès des utilisateurs. Différents utilisateurs peuvent avoir des droits d'accès différents, en fonction de leurs rôles et autorisations.
Pourquoi utiliser Node.js pour la gestion des autorisations ?
Node.js est un environnement JavaScript côté serveur piloté par événements, idéal pour créer des applications Web efficaces. L'utilisation de Node.js pour créer un système de gestion des autorisations peut offrir les avantages suivants :
- Développement rapide : Node.js fournit de nombreux modules et bibliothèques qui peuvent réduire considérablement le temps de développement.
- Hautes performances : Node.js étant non bloquant, il peut gérer un grand nombre de requêtes simultanées.
- Extensibilité : Node.js vous permet d'ajouter et d'étendre des modules facilement.
- Coût : Node.js est gratuit et dispose d'une documentation complète et de ressources communautaires.
Créer un système de gestion des autorisations avec Node.js
Voici les étapes pour créer un système de gestion des autorisations avec Node.js :
Étape 1 : Installer Node.js
Pour commencer à utiliser Node.js, vous devez installez-le d'abord. Vous pouvez accéder au [site officiel de Node.js](https://nodejs.org/en/) pour télécharger la dernière version de Node.js. Après avoir exécuté le programme d'installation, vous pouvez vérifier à partir de la ligne de commande que Node.js est correctement installé. Tapez la commande suivante dans la ligne de commande :
node -v
Si l'installation réussit, vous verrez le numéro de version de Node.js.
Étape 2 : Configurer le projet
Maintenant que Node.js est installé, vous devez configurer le projet. Accédez au dossier du projet sur la ligne de commande et entrez la commande suivante :
npm init
Cette commande vous guidera pour créer un nouveau fichier package.json. Ce fichier est un manifeste de projet JavaScript qui contient toutes les informations et dépendances du projet.
Étape 3 : Installez les modules Node.js requis
Dans Node.js, vous pouvez facilement utiliser le gestionnaire de packages npm pour installer les modules requis. Entrez la commande suivante sur la ligne de commande pour installer les modules requis :
- express : Un framework pour créer des applications Web.
- body-parser : utilisé pour analyser les données dans le corps de la requête.
- cookie-parser : utilisé pour analyser les données contenues dans les cookies.
- express-session : permet de gérer les séances.
- connect-flash : utilisé pour afficher les messages flash.
npm install express body-parser cookie-parser express-session connect-flash --save
Étape 4 : Créer une base de données
Vous aurez également besoin d'une base de données pour stocker les informations sur les utilisateurs et les rôles. Dans cet article, nous utiliserons MongoDB.
Tout d’abord, vous devez installer MongoDB. Vous pouvez télécharger la dernière version de MongoDB depuis le [site officiel de MongoDB](https://www.mongodb.com/).
Ensuite, vous devez créer une nouvelle base de données et une nouvelle collection dans MongoDB. Entrez la commande suivante sur la ligne de commande :
mongo use mydb db.createCollection("users") db.createCollection("roles")
Ce code créera une base de données nommée "mydb", et deux collections nommées "users" et "roles".
Étape 5 : Écrivez le code
Maintenant que vous avez terminé tous les préparatifs, vous pouvez commencer à écrire le code. Dans le répertoire du projet, créez un fichier appelé "app.js" et ajoutez le code suivant au fichier :
const express = require('express'); const bodyParser = require('body-parser'); const cookieParser = require('cookie-parser'); const session = require('express-session'); const flash = require('connect-flash'); const mongoose = require('mongoose'); const app = express(); mongoose.connect('mongodb://localhost/mydb'); const User = mongoose.model('User', { name: String, password: String, role: String }); const Role = mongoose.model('Role', { name: String, permissions: [String] }); app.set('view engine', 'ejs'); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(session({ secret: 'secret key', resave: false, saveUninitialized: false })); app.use(flash()); const requireRole = (role) => { return (req, res, next) => { if (req.session.user && req.session.user.role === role) { next(); } else { req.flash('error', 'Permission denied'); res.redirect('/login'); } }; }; app.get('/', (req, res) => { res.render('index'); }); app.get('/login', (req, res) => { res.render('login', { error: req.flash('error') }); }); app.post('/login', (req, res) => { User.findOne({ name: req.body.name, password: req.body.password }, (err, user) => { if (err) { req.flash('error', 'Login failed'); res.redirect('/login'); } else if (!user) { req.flash('error', 'Invalid user or password'); res.redirect('/login'); } else { req.session.user = user; res.redirect('/dashboard'); } }); }); app.get('/dashboard', requireRole('manager'), (req, res) => { res.render('dashboard'); }); app.get('/logout', (req, res) => { req.session.destroy(); res.redirect('/login'); }); app.listen(3000, () => { console.log('Server started at http://localhost:3000'); });
Ce code comprend les étapes suivantes :
- Importez tous les modules Node.js requis et connectez la base de données MongoDB.
- Définissez deux collections MongoDB Utilisateur et Rôle.
- Configurez l'application Express et définissez la fonction middleware pour valider les rôles des utilisateurs.
- Définissez les itinéraires Express, y compris l'itinéraire racine, l'itinéraire de connexion, l'itinéraire du tableau de bord et l'itinéraire de déconnexion.
- Démarrez l'application Express et écoutez sur le port 3000.
Étape 6 : Créer des vues
Enfin, vous devez créer des vues pour présenter votre application Web.
Dans le répertoire du projet, créez un dossier appelé "views" et créez les fichiers de vue suivants :
- index.ejs : pour le rendu de la page d'accueil.
- login.ejs : utilisé pour présenter l'interface de connexion.
- dashboard.ejs : utilisé pour rendre le tableau de bord.
<!doctype html> <html> <head> <title>Node.js Authorization</title> </head> <body> <h1>Node.js Authorization</h1> <nav> <% if (typeof user === 'undefined') { %> <a href="/login">Sign in</a> <% } else { %> <a href="/dashboard">Dashboard</a> <a href="/logout">Sign out</a> <% } %> </nav> <hr> <p>Welcome to Node.js Authorization.</p> </body> </html>
<!doctype html> <html> <head> <title>Node.js Authorization - Login</title> </head> <body> <h1>Node.js Authorization - Login</h1> <% if (error) { %> <p><%= error %></p> <% } %> <form method="post" action="/login"> <div> <label for="name">Name:</label> <input type="text" name="name" required> </div> <div> <label for="password">Password:</label> <input type="password" name="password" required> </div> <div> <input type="submit" value="Sign in"> </div> </form> </body> </html>
<!doctype html> <html> <head> <title>Node.js Authorization - Dashboard</title> </head> <body> <h1>Node.js Authorization - Dashboard</h1> <nav> <a href="/">Home</a> <a href="/logout">Sign out</a> </nav> <hr> <h2>Welcome <%= user.name %>.</h2> <p>You are logged in as a manager.</p> </body> </html>
Ces trois vues sont légèrement différentes. La route index.ejs est accessible directement, la route login.ejs est contrôlée lorsqu'elle n'est pas connectée et Dashboard.ejs n'est accessible qu'aux utilisateurs ayant l'identité de manager.
Conclusion
Node.js est un excellent outil pour créer des applications Web efficaces. Il fournit de nombreuses fonctionnalités et modules pour vous aider à créer facilement un puissant système de gestion des autorisations. Avec Node.js, vous pouvez développer rapidement, être performant, être évolutif et c'est gratuit. Node.js dispose également d'une communauté active qui fournit des tonnes de support et de ressources.
Dans cet article, nous avons appris comment créer un système de gestion des autorisations à l'aide de Node.js. Nous avons appris à utiliser MongoDB pour stocker des informations sur les utilisateurs et les rôles, à créer des applications Web à l'aide d'Express.js et à utiliser un moteur de modèle pour afficher des vues.
J'espère que cet article vous sera utile, merci d'avoir lu.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Explication détaillée de la méthode de remplacement de la chaîne JavaScript et de la FAQ Cet article explorera deux façons de remplacer les caractères de chaîne dans JavaScript: le code JavaScript interne et le HTML interne pour les pages Web. Remplacer la chaîne dans le code JavaScript Le moyen le plus direct consiste à utiliser la méthode Remplace (): str = str.replace ("trouver", "remplacer"); Cette méthode remplace uniquement la première correspondance. Pour remplacer toutes les correspondances, utilisez une expression régulière et ajoutez le drapeau global G: str = str.replace (/ fi

Des fonctions JavaScript simples sont utilisées pour vérifier si une date est valide. fonction isValidDate (s) { var bits = s.split ('/'); var d = new Date (bits [2] '/' bits [1] '/' bits [0]); return !! (d && (d.getMonth () 1) == bits [1] && d.getDate () == Number (bits [0])); } //test var

Cet article explique comment utiliser jQuery pour obtenir et définir les valeurs de marge et de marge intérieures des éléments DOM, en particulier les emplacements spécifiques de la marge extérieure et des marges intérieures de l'élément. Bien qu'il soit possible de définir les marges intérieures et extérieures d'un élément à l'aide de CSS, l'obtention de valeurs précises peut être délicate. // installation $ ("div.header"). CSS ("marge", "10px"); $ ("div.header"). css ("padding", "10px"); Vous pourriez penser que ce code est

Cet article explore dix onglets jQuery exceptionnels et accordéons. La principale différence entre les onglets et les accordéons réside dans la façon dont leurs panneaux de contenu sont affichés et cachés. Plongeons ces dix exemples. Articles connexes: 10 plugins de l'onglet jQuery

Découvrez dix plugins jQuery exceptionnels pour élever le dynamisme et l'attrait visuel de votre site Web! Cette collection organisée offre diverses fonctionnalités, de l'animation d'image aux galeries interactives. Explorons ces outils puissants: Related Posts: 1

HTTP-Console est un module de nœud qui vous donne une interface de ligne de commande pour exécuter les commandes HTTP. C'est idéal pour le débogage et voir exactement ce qui se passe avec vos demandes HTTP, qu'elles soient faites contre un serveur Web, Web Serv

Ce tutoriel vous montre comment intégrer une API de recherche Google personnalisée dans votre blog ou site Web, offrant une expérience de recherche plus raffinée que les fonctions de recherche de thème WordPress standard. C'est étonnamment facile! Vous pourrez restreindre les recherches à Y

L'extrait de code jQuery suivant peut être utilisé pour ajouter des barres de défilement lorsque le contenu DIV dépasse la zone de l'élément de conteneur. (Pas de démonstration, veuillez le copier directement sur Firebug) // d = document // w = fenêtre // $ = jQuery var contentArea = $ (this), wintop = contentArea.scrollTop (), docheight = $ (d) .height (), winheight = $ (w) .height (), divheight = $ ('# c
