À 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.
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.
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 :
Voici les étapes pour créer un système de gestion des autorisations avec 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.
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.
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 :
npm install express body-parser cookie-parser express-session connect-flash --save
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".
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 :
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 :
<!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.
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!