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    

Artikel empfehlen

So unterstreichen Sie das A-Tag und ändern die Farbe vor und nach dem Klicken

Code kopieren Der Code lautet wie folgt: ein:link...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.22 winx64

Das grafische Tutorial zur Installation und Konfi...

Ein Artikel zeigt Ihnen, wie Sie den Watch-Listener von Vue verwenden

Inhaltsverzeichnis Hörer beobachten Format Richte...

Entdecken Sie, wie Ihnen eine LED den Einstieg in den Linux-Kernel erleichtert

Inhaltsverzeichnis Vorwort LED-Trigger Entdecken ...

Allgemeine Betriebsbefehle von MySQL im Linux-System

Aufschlag: # chkconfig --list Alle Systemdienste ...

Webdesign muss auch zunächst eine umfassende Bildpositionierung der Website haben

⑴ Der Inhalt bestimmt die Form. Reichern Sie zuers...

Sieben Prinzipien eines guten Designers (1): Schriftdesign

Nun, vielleicht sind Sie ein Design-Guru, oder vie...

Java-Beispielcode zum Generieren von zufälligen Zeichen

Beispielcode: importiere java.util.Random; import...

Datenbankabfrage, welches Objekt welches Feld enthält, Methodenanweisung

Die Datenbank fragt ab, welches Objekt welche Fel...

So passen Sie CSS an den Vollbildmodus des iPhone an

1. Medienabfragemethode /*iPhone X-Anpassung*/ @m...

Detaillierter Prozess der Installation von nginx1.9.1 auf centos8

1.17.9 Wirklich leckerer Nginx-Download-Adresse: ...