Heim > Web-Frontend > js-Tutorial > Hauptteil

So erstellen Sie ein Berechtigungsverwaltungssystem mit Node.js

PHPz
Freigeben: 2023-04-05 09:17:59
Original
1580 Leute haben es durchsucht

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.

Was ist Berechtigungsverwaltung?

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.

Warum Node.js für die Berechtigungsverwaltung verwenden?

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:

  • Schnelle Entwicklung: Node.js bietet zahlreiche Module und Bibliotheken, die die Entwicklungszeit erheblich verkürzen können.
  • Hohe Leistung: Da Node.js nicht blockierend ist, kann es eine große Anzahl gleichzeitiger Anfragen verarbeiten.
  • Erweiterbarkeit: Mit Node.js können Sie Module einfach hinzufügen und erweitern.
  • Kosten: Node.js ist kostenlos und verfügt über umfangreiche Dokumentation und Community-Ressourcen.

Erstellen Sie ein Berechtigungsverwaltungssystem mit Node.js

Hier sind die Schritte zum Erstellen eines Berechtigungsverwaltungssystems mit Node.js:

Schritt 1: Node.js installieren

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
Nach dem Login kopieren

Wenn die Installation erfolgreich ist, wird Ihnen die Versionsnummer von Node.js angezeigt.

Schritt 2: Richten Sie das Projekt ein

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
Nach dem Login kopieren

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.

Schritt 3: Installieren Sie die erforderlichen Node.js-Module

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:

  • express: Ein Framework zum Erstellen von Webanwendungen.
  • Body-Parser: Wird zum Parsen der Daten im Anforderungstext verwendet.
  • Cookie-Parser: Wird zum Parsen von Daten in Cookies verwendet.
  • Express-Sitzung: Wird zum Verwalten von Sitzungen verwendet.
  • connect-flash: Wird zum Anzeigen von Flash-Nachrichten verwendet.
npm install express body-parser cookie-parser express-session connect-flash --save
Nach dem Login kopieren

Schritt 4: Datenbank erstellen

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")
Nach dem Login kopieren

Dieser Code erstellt eine Datenbank mit dem Namen „mydb“ und zwei Sammlungen mit den Namen „users“ und „roles“.

Schritt 5: Code schreiben

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');
});
Nach dem Login kopieren

Dieser Code umfasst die folgenden Schritte:

  1. Importieren Sie alle erforderlichen Node.js-Module und verbinden Sie die MongoDB-Datenbank.
  2. Definieren Sie zwei MongoDB-Sammlungen: Benutzer und Rolle.
  3. Konfigurieren Sie die Express-Anwendung und definieren Sie die Middleware-Funktion zur Validierung von Benutzerrollen.
  4. Definieren Sie Express-Routen, einschließlich Root-Route, Anmelderoute, Dashboard-Route und Abmelderoute.
  5. Starten Sie die Express-Anwendung und überwachen Sie Port 3000.

Schritt 6: Ansichten erstellen

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:

  • index.ejs: zum Rendern der Homepage.
  • login.ejs: wird zur Darstellung der Anmeldeschnittstelle verwendet.
  • dashboard.ejs: wird zum Rendern des Dashboards verwendet.
<!doctype html>
<html>
<head>
  <title>Node.js Authorization</title>
</head>
<body>
  <h1>Node.js Authorization</h1>
  <nav>
    <% if (typeof user === &#39;undefined&#39;) { %>
      <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>
Nach dem Login kopieren
<!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>
Nach dem Login kopieren
<!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>
Nach dem Login kopieren

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.

Fazit

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!