Express implementiert Login-Verifizierung

Express implementiert Login-Verifizierung

In diesem Artikelbeispiel wird der spezifische Code für Express zur Implementierung der Anmeldeüberprüfung zu Ihrer Information bereitgestellt. Der spezifische Inhalt ist wie folgt

Die von Express implementierte Routing-Anmeldung ist in vielen Szenarien anwendbar. Dieser Code wird für die zukünftige Verwendung aufgezeichnet.

Zuerst kommt die Hauptdatei: server.js

const express = erfordern('express');
const static = erforderlich('express-static');
const bodyParser = erfordern('body-parser');
const multer = require('multer');
// Der Pfad zum Hochladen der Konfigurationsdatei, hier ist die lokale Adresse const multerObj = multer({ dest: './static/upload' });
const cookieParser = erforderlich('cookie-parser');
const cookieSession = erforderlich('cookie-session');
const konsolidieren = erfordern('konsolidieren');
 
// Die Unterroutenseite muss verwendet werden. Stellen Sie sicher, dass sie installiert wurde. const expressRoute = require('express-route');
const mysql = erfordern('mysql');
 
var server = express();
server.listen(8080);
 
// Übermittelte Daten und Dateien verarbeiten server.use(bodyParser.urlencoded());
server.use(multerObj.any());
 
// Cookie- und Signaturverarbeitung server.use(cookieParser());
(Funktion () {
    var Schlüssel = [];
    für (var i = 0; i < 100000; i++) {
        Schlüssel[i] = "geheim" + Math.random();
    };
    server.use(cookieSession({
        Name: "Sitzungs-ID",
        Tasten: Tasten,
        maxAlter: 20 * 60 * 1000  
    }));
})();
 
// Vorlagen-Rendering server.engine('html', consolidate.ejs);
server.set('Ansichten', 'Vorlage');
server.set('Ansichts-Engine', 'html');
 
// Routenaufteilung server.use('/', require('./route/web/index.js')()); // Front-End-Routing server.use('/admin/', require('./route/admin/index.js')()); // Back-End-Routing // Statische Daten server.use(static('./static/'));

Das Obige ist ein allgemeines Strukturgerüst. In Zukunft müssen Sie sich nur auf den Routing-Teil konzentrieren. Das Folgende ist der Hintergrund-Routing-Teil.

const express = erfordern('express');
 
modul.exporte = funktion () {
 
    var router = express.Router();
 
    // Vor dem Einloggen router.use((req, res, next) => {
        wenn (!req.session['admin_id'] && req.url != '/login') { 
            res.redirect('/admin/login');
        } anders {
            nächste();
        }
    });
    router.use('/login', erfordern('./login')());
 
    
    // Andere Routen nach dem normalen Login router.get('/', (req, res) => {
        res.render('admin/index.ejs', {});
    });
    // Routing basierend auf dem Geschäft hinzufügen router.use('/banners', require('./banners')());
 
    Rückrouter;
};

Die Modularität von Express wird tatsächlich durch Routing Ebene für Ebene definiert. Als nächstes schauen wir uns die Implementierung des Anmeldecodes im obigen Code an.

const express = erfordern('express');
// Gekapselte öffentliche Methode (md5) Verschlüsselungsmodul const common = require('../../libs/common');
const mysql = erfordern('mysql');
 
var db = mysql.createPool({ 
    Host: "localhost", 
    Benutzer: 'root', 
    Passwort: '123456', 
    Datenbank: „Blog“ 
});
 
modul.exporte = funktion () {
    var router = express.Router();
    router.get('/', (req, res) => {
        res.render('admin/login.ejs', {});
    });
    
    router.post('/', (req, res) => {
        var Benutzername = req.body.Benutzername;
        var Passwort = common.md5(req.body.password + common.MD5_SUFFIX);
        db.query(`SELECT * FROM admin_table WHERE Benutzername='${Benutzername}'`, (err, data) => {
            wenn (Fehler) {
                // Die zurückgegebenen Daten sind sehr einfach. Tatsächlich wird ein Objekt zurückgegeben.res.status(500).send('Datenbankverbindungsfehler').end();
            } anders {
                wenn (Datenlänge == 0) {
                    res.status(400).send('Administrator existiert nicht').end();
                } anders {
                    wenn (data[0].password == password) {
                        req.session['admin_id'] = Daten[0].ID;
                        res.redirect('/admin/');
                    } anders {
                        res.status(400).send('Falsches Passwort').end();
                    }
                }
            }
        });
    });
 
    Rückrouter;
};

Möglicherweise haben Sie bemerkt, dass im obigen Code ein Import des allgemeinen Moduls vorhanden ist. Diese Datei definiert hauptsächlich einige allgemeine Methoden, beispielsweise die MD5-Verschlüsselungsmethode.

const crypto = erforderlich('Krypto');
modul.exporte = {
    MD5_SUFFIX: 'FDSW$t34tregt5tO&$(#RHuyoyiUYE*&OI$HRLuy87odlfh)',
    md5: Funktion (str) {
        var obj = crypto.createHash('md5');
        obj.update(str);
        returniere obj.digest('hex');
    }
};

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Express + Session zur Implementierung der Anmeldeüberprüfungsfunktion
  • Nodejs Advanced: Express+Session zur Erzielung einer einfachen Login-Authentifizierung
  • Node.js+Express+MySql zur Realisierung von Benutzeranmelde- und Registrierungsfunktionen
  • Verwenden Sie Node und Express, um eine Verbindung zu MySQL herzustellen und den Anmelde- und Registrierungscode zu implementieren
  • Node+Express+MongoDB zur Implementierung von Anmelde- und Registrierungsfunktionen
  • So verwenden Sie jwt zur Implementierung der Überprüfung im Express-Framework
  • Express + jwt + postMan-Verifizierung, um dauerhafte Anmeldung zu erreichen
  • Beispielcode zur Implementierung der Berechtigungsüberprüfung des Anmeldestatus mit Vue+Express
  • Nodejs verwendet Express, um die Methode zum Abrufen und Senden von Wertübertragungen und Sitzungsüberprüfungen abzurufen
  • DevExpress implementiert die Überprüfungsmethode für die GridControl-Zellenbearbeitung

<<:  Das vergessene Button-Tag

>>:  Docker-Reinigungskiller/Docker-Overlay-Datei nimmt zu viel Speicherplatz ein

Artikel empfehlen

Analyse und Beschreibung von Netzwerkkonfigurationsdateien unter Ubuntu-System

Ich bin heute auf ein seltsames Netzwerkproblem g...

Codebeispiel für das Nutzungsszenario der Nginx-Domänenweiterleitung

Szenario 1: Aufgrund von Serverbeschränkungen ist...

Anweisungen zur Verwendung der MySQL-IndexOF-Funktion

Wie unten dargestellt: LOCATE(Teilzeichenfolge,Ze...

So zeigen Sie Webseiten in verschiedenen Auflösungen und Browsern richtig an

Die Schlüsselcodes lauten wie folgt: Code kopieren...

Eine kurze Diskussion über bedingte Kodierung und Seitenlayout der VUE-Uni-App

Inhaltsverzeichnis Bedingte Kompilierung Seitenla...

Wissen zur Suchmaschinenoptimierung, auf das Sie beim Webdesign achten sollten

1. Linklayout der neuen Site-Startseite 1. Die Pos...

Vues Leitfaden zu Fallstricken bei der Verwendung von Drosselungsfunktionen

Vorwort In einem üblichen Geschäftsszenario müsse...

Docker unter Linux installieren (sehr einfache Installationsmethode)

Ich hatte in letzter Zeit ziemlich viel Zeit. Ich...

Verwenden Sie vue3, um ein Mensch-Katze-Kommunikations-Applet zu implementieren

Inhaltsverzeichnis Vorwort Initialisieren des Pro...

Detaillierte Erklärung wichtiger Kaskadierungskonzepte in CSS

Kürzlich stieß ich im Verlauf des Projekts auf ei...

Linux-Betrieb und -Wartung – Tutorial zur grundlegenden Datenträgerverwaltung

1. Festplattenpartition: 2. fdisk-Partition Wenn ...

MySQL-Datenbank-Entwicklungsspezifikationen [empfohlen]

Vor Kurzem haben wir SQL zur Optimierung online e...