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

Ungültige Lösung beim Definieren mehrerer Klassenattribute in HTML

Beim Schreiben von HTML definieren wir häufig mehr...

26 häufig vergessene CSS-Tipps

Dies ist eine Sammlung häufig verwendeter, aber l...

Implementierung des Docker-Verpackungsimages und Konfigurationsänderung

Ich bin in letzter Zeit beim Erlernen von Docker ...

Detaillierte Erklärung der HTML-Style-Tags und der zugehörigen CSS-Referenzen

HTML-Style-Tag Stil-Tag - Verwenden Sie dieses Ta...

Lösung für das Problem der langsamen Docker-Pull-Image-Geschwindigkeit

Derzeit verfügt Docker über einen offiziellen Mir...

So installieren Sie Docker mit YUM

Wie in der folgenden Abbildung dargestellt: Wenn ...

Beispiel zum Aktivieren langsamer Abfragen in MySQL

Vorwort Das langsame Abfrageprotokoll ist eine se...

Wissen Sie, wie Sie mit Vue-Cropper Bilder in Vue zuschneiden?

Inhaltsverzeichnis 1. Installation: 2. Verwendung...

jQuery erzielt den Shutter-Effekt (mithilfe der Li-Positionierung)

In diesem Artikel wird der spezifische Code von j...

Lösung für SQL Server-Datenbankfehler 5123

Weil ich ein Datenbank-Tutorial habe, das auf SQL...

Lösung zum Vergessen des MySQL-Root-Passworts in MACOS

MySQL ist ein relationales Datenbankverwaltungssy...