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

9 praktische CSS-Eigenschaften, die Web-Frontend-Entwickler kennen müssen

1. Abgerundete Ecken Heutige Webdesigns halten stä...

Sublime Text - Empfohlene Methode zum Festlegen von Browser-Tastenkombinationen

Codeeffekte werden häufig in unterschiedlichen Br...

Mit CSS3 erstellter Hover-Zoom-Effekt

Ergebnis:Implementierungscode: html <link href...

HTML-Tutorial: Sammlung häufig verwendeter HTML-Tags (6)

Verwandte Artikel: Anfänger lernen einige HTML-Ta...

Webdesign-Tutorial (3): Designschritte und Denkweise

<br />Vorheriges Tutorial: Webdesign-Tutoria...

mysql 5.7.5 m15 winx64.zip Installations-Tutorial

So installieren und konfigurieren Sie mysql-5.7.5...

Detaillierte Erläuterung der Cache-Konfiguration von Nginx Proxy_Cache

Vorwort: Aufgrund meiner Arbeit beschäftige ich m...

Detaillierte Erläuterung der MySQL-Fremdschlüsseleinschränkungen

Amtliche Dokumentation: https://dev.mysql.com/doc...

Detaillierte Erläuterung der langsamen MySQL-Protokollabfrage

Langsame Protokollabfragefunktion Die Hauptfunkti...

CSS Polarkoordinaten Beispielcode

Vorwort Das Projekt stellt Anforderungen an Karte...

Vue verbessert die Seitenantwortgeschwindigkeit durch Lazy Loading

Inhaltsverzeichnis Überblick Was ist Lazy Loading...