Da die Komplexität von Webanwendungen zunimmt, wird das Berechtigungsmanagement immer wichtiger. Das Verwalten von Benutzern und Benutzerrollen sowie das Einschränken des Zugriffs auf bestimmte Seiten ist zu einem wesentlichen Bestandteil von Webanwendungen geworden. Node.js ist eine sehr beliebte serverseitige JavaScript-Umgebung, die beim Erstellen effizienter Webanwendungen hilft. In diesem Artikel erfahren Sie, wie Sie mit Node.js ein Berechtigungsverwaltungssystem erstellen.
Berechtigungsverwaltung ist der Prozess der Steuerung, auf was Benutzer zugreifen und welche Aktionen sie ausführen können. Dazu gehört die Verwaltung von Benutzern und Benutzerrollen, die Zuweisung von Ressourcen und Berechtigungen usw.
In einer Webanwendung ist die Berechtigungsverwaltung sehr wichtig, unabhängig davon, ob es um den Schutz vertraulicher Informationen oder die Steuerung von Benutzerzugriffsberechtigungen geht. Abhängig von ihren Rollen und Berechtigungen können unterschiedliche Benutzer unterschiedliche Zugriffsrechte haben.
Node.js ist eine ereignisgesteuerte serverseitige JavaScript-Umgebung, die sich ideal zum Erstellen effizienter Webanwendungen eignet. Die Verwendung von Node.js zum Aufbau eines Berechtigungsverwaltungssystems kann die folgenden Vorteile bieten:
Hier sind die Schritte zum Erstellen eines Berechtigungsverwaltungssystems mit Node.js:
Um Node.js verwenden zu können, müssen Sie Folgendes tun Installieren Sie es zuerst. Sie können zur [offiziellen Website von Node.js](https://nodejs.org/en/) gehen, um die neueste Version von Node.js herunterzuladen. Nachdem Sie das Installationsprogramm ausgeführt haben, können Sie über die Befehlszeile überprüfen, ob Node.js korrekt installiert ist. Geben Sie den folgenden Befehl in die Befehlszeile ein:
node -v
Wenn die Installation erfolgreich ist, wird Ihnen die Versionsnummer von Node.js angezeigt.
Da Sie nun Node.js installiert haben, müssen Sie das Projekt einrichten. Gehen Sie in der Befehlszeile zum Projektordner und geben Sie den folgenden Befehl ein:
npm init
Dieser Befehl führt Sie durch die Erstellung einer neuen package.json-Datei. Diese Datei ist ein Manifest für ein JavaScript-Projekt, das alle Informationen und Abhängigkeiten des Projekts enthält.
In Node.js können Sie ganz einfach den Paketmanager npm verwenden, um die erforderlichen Module zu installieren. Geben Sie in der Befehlszeile den folgenden Befehl ein, um die erforderlichen Module zu installieren:
npm install express body-parser cookie-parser express-session connect-flash --save
Sie benötigen außerdem eine Datenbank zum Speichern von Benutzer- und Rolleninformationen. In diesem Artikel verwenden wir MongoDB.
Zuerst müssen Sie MongoDB installieren. Sie können die neueste Version von MongoDB von der [offiziellen MongoDB-Website](https://www.mongodb.com/) herunterladen.
Dann müssen Sie eine neue Datenbank und Sammlung in MongoDB erstellen. Geben Sie in der Befehlszeile den folgenden Befehl ein:
mongo use mydb db.createCollection("users") db.createCollection("roles")
Dieser Code erstellt eine Datenbank mit dem Namen „mydb“ und zwei Sammlungen mit den Namen „users“ und „roles“.
Da Sie nun alle Vorbereitungen abgeschlossen haben, können Sie mit dem Schreiben des Codes beginnen. Erstellen Sie im Projektverzeichnis eine Datei mit dem Namen „app.js“ und fügen Sie der Datei den folgenden Code hinzu:
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'); });
Dieser Code umfasst die folgenden Schritte:
Zuletzt müssen Sie Ansichten erstellen, um Ihre Webanwendung zu präsentieren.
Erstellen Sie im Projektverzeichnis einen Ordner namens „views“ und erstellen Sie die folgenden Ansichtsdateien:
<!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>
Diese drei Ansichten unterscheiden sich geringfügig. Auf die Route „index.ejs“ kann direkt zugegriffen werden, auf die Route „login.ejs“ wird gesteuert, wenn sie nicht angemeldet sind, und auf „dashboard.ejs“ kann nur von Benutzern mit der Identität eines Managers zugegriffen werden.
Node.js ist ein großartiges Tool zum Erstellen effizienter Webanwendungen. Es bietet zahlreiche Funktionen und Module, die Ihnen beim einfachen Aufbau eines leistungsstarken Berechtigungsverwaltungssystems helfen. Mit Node.js können Sie schnell entwickeln, eine gute Leistung erbringen, skalierbar sein und es ist kostenlos. Node.js verfügt außerdem über eine aktive Community, die jede Menge Support und Ressourcen bietet.
In diesem Artikel haben wir gelernt, wie man mit Node.js ein Berechtigungsverwaltungssystem erstellt. Wir haben gelernt, wie man MongoDB zum Speichern von Benutzer- und Rolleninformationen verwendet, wie man Webanwendungen mit Express.js erstellt und wie man eine Template-Engine zum Rendern von Ansichten verwendet.
Ich hoffe, dieser Artikel ist hilfreich für Sie, vielen Dank fürs Lesen.
Das obige ist der detaillierte Inhalt vonSo erstellen Sie ein Berechtigungsverwaltungssystem mit Node.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!