Vue2.x konfiguriert Routing-Navigations-Guards, um die Benutzeranmeldung und -beendigung zu implementieren.

Vue2.x konfiguriert Routing-Navigations-Guards, um die Benutzeranmeldung und -beendigung zu implementieren.

Vorwort

Bildbeschreibung hier einfügen

Zuvor wurde bei der Untersuchung von Vue die Funktion des Benutzeranmeldemoduls durch die Routing-Navigationsschutzsteuerung realisiert. Wenn das Projekt nun erneut durchgeführt wird, muss der Routing-Navigationsschutz von Vue konfiguriert werden, um dieselbe Funktion zu realisieren. Hier wird der Implementierungsprozess aufgezeichnet und zusammengefasst (dieser Artikel basiert auf Vue2.x).

Tipp: Das Folgende ist der Hauptinhalt dieses Artikels. Die folgenden Fälle können als Referenz verwendet werden

1. Konfigurieren Sie den Routing-Navigationsschutz

1. Global Navigation Guard

Wenn das Projekt nur ein Backend enthält, können Sie in Vue den globalen Navigationsschutz konfigurieren. Nachdem Sie den globalen Routing-Navigationsschutz eingerichtet haben, kann der Benutzer, solange das Projekt gestartet wird, nur zur Anmeldeseite springen, wenn er nicht angemeldet ist, und darf nicht zu anderen Schnittstellen springen .
Fügen Sie den folgenden Code zum Ordner router -> index.js hinzu, der bei der Installation der Vue-Router-Abhängigkeit automatisch generiert wird

router.beforeEach((bis, von, weiter) => {
  // Wenn der Zugriff auf die Anmeldeoberfläche erfolgt, dann erlauben Sie ihn direkt, wenn (to.path === '/login') return next()
  //Informationen zum Token der Benutzerseite abrufen let token = window.sessionStorage.getItem('token')
  //Wenn die Token-Daten null sind, springe zum angegebenen Pfad, if (!token) return next("/login")
  nächste()
})

Bildbeschreibung hier einfügen

Parametererklärung:

  • zu: Zu welcher Schnittstelle soll gesprungen werden
  • von: Von welcher Schnittstelle aus gesprungen werden soll
  • next: stellt die Funktion next() dar , die zum Freigeben verwendet wird

2. Lokaler Navigationswächter

Es gibt auch eine Situation bei der Projektentwicklung, in der sowohl das Front-End als auch das Back-End gleichzeitig entwickelt werden müssen. Zu diesem Zeitpunkt kann der Routing-Navigationsschutz nicht global konfiguriert werden, da die Front-End-Schnittstelle den Benutzern angezeigt werden muss und Benutzer darauf zugreifen können, auch wenn sie nicht angemeldet sind . Daher fängt der Routing-Navigationsschutz nur den Back-End-Pfad ab.

Der Routennavigationsschutz ist immer noch im Ordner „index.js“ konfiguriert, dieses Mal gilt die Konfiguration jedoch für eine einzelne Komponente.

In meinem Projekt ist die Welcome-Komponente beispielsweise eine Hintergrundkomponente. Um nun den Routing-Navigationsschutz für diese Komponente zu konfigurieren, ersetzen Sie zunächst die globale Konfiguration von beforeEach durch beforeEnter für die Konfiguration des Navigationsschutzes für einzelne Komponenten.

Bildbeschreibung hier einfügen

Der Autor hat zuvor den Routing-Navigationsschutz in der Anmeldekomponente konfiguriert, aber er hat nicht funktioniert. Ich habe ihn hier aufgezeichnet, um einen solchen Fehler in Zukunft zu vermeiden. Fügen Sie der Komponente einfach den folgenden Code hinzu:

// Definiere die Routennavigation guard beforeEnter(to, from, next) {
      //Informationen zum Token der Benutzerseite abrufen let token = window.sessionStorage.getItem('token')
      //Wenn die Token-Daten null sind, springe zum angegebenen Pfad, if (!token) return next("/login")
      nächste()
    }

Die Parameter des lokalen Navigationswächters stimmen mit denen der globalen Konfiguration überein. Bis auf das Ersetzen von beforeEach durch beforeEnter ist der Rest gleich. Ich werde hier nicht ins Detail gehen.

2. Benutzeranmeldung

Hier wird nur der Front-End-Code angezeigt. Jeder hat seinen eigenen Stil und seine eigene Art, den Back-End-Code zu schreiben. Daher wird er hier nicht angezeigt.

1. Axios-Konfiguration

Um das Problem der Rückrufhölle im Projekt zu vermeiden, habe ich das Axios-Plugin hier importiert und Axios im Voraus in der Datei main.js konfiguriert

/* Axios-Paket importieren */
Axios von „Axios“ importieren

/* Legen Sie das angeforderte Stammverzeichnis von Axios fest */
axios.defaults.baseURL = "http://localhost:8089/"
/* Fügen Sie dem Vue-Objekt ein globales Objekt hinzu und senden Sie dann eine Ajax-Anfrage mit dem $http-Objekt*/
Vue.prototype.$http = axios

Da die globale Konfiguration in der Datei main.js durchgeführt wird, wird $http in der Komponente angezeigt, um das Stammverzeichnis der festgelegten Anforderung darzustellen, das hier http://localhost:8089/ ist.

2. Benutzer-Login-Code

// Wenn der Login-Button geklickt wird, sende Daten an den Hintergrund login() {
  dies.$refs.loginFormRef.validate(async valid => {
    wenn(!gültig) return
    const {data: result} = warte auf dies.$http.post("/user/login",this.loginForm)
    // Wenn der Statuscode im zurückgegebenen Parameter nicht 200 ist, bedeutet dies, dass die Anmeldung fehlgeschlagen ist. if(result.status !== 200) return this.$message.error("Benutzeranmeldung fehlgeschlagen")
    this.$message.success("Benutzeranmeldung erfolgreich")
    //Nach erfolgreicher Anmeldung die Token-Informationen im Sitzungsfenster speichern.sessionStorage.setItem('token',result.data)
    //Zur Homepage des Backend-Verwaltungssystems springen this.$router.push("/welcome")
})

3. Benutzer-Exit

Wenn sich der Benutzer abmeldet, muss er nur die Token-Daten in der Sitzung löschen und dann zu anderen Seiten springen. Zu diesem Zeitpunkt wird der Routing-Navigationsschutz erneut wirksam, sodass er im Vordergrund implementiert werden kann, ohne eine Verbindung zum Backend herzustellen .

1. Implementierungscode

abmelden() {
  //1. Löschen Sie die Daten im Sitzungsfenster.sessionStorage.clear()
  //2. Der Benutzer greift auf die Anmeldeseite zu: this.$router.push('/login')
}

Zusammenfassen

Das Obige ist die Funktion zum Realisieren der Benutzeranmeldung und -abmeldung nach der Konfiguration des Routing-Navigationsschutzes in Vue. Bei der Implementierung gibt es zwei Situationen: Auf die Schnittstelle kann erst zugegriffen werden, nachdem man sich beim Projekt angemeldet hat, und die Rezeption kann durchsucht werden, auch wenn der Benutzer nicht angemeldet ist. Im ersten Fall müssen Sie nur eine globale Konfiguration durchführen. Im zweiten Fall müssen Sie nur die Einzelkomponenten-Routing-Navigation in der Komponente konfigurieren, zu der Sie nach der Anmeldung springen möchten.

Dies ist das Ende dieses Artikels über die Konfiguration von Vue2.x-Routing-Navigationswächtern zur Implementierung der Benutzeranmeldung und -abmeldung. Weitere relevante Inhalte zu Anmeldung und Abmeldung von Vue-Routing-Wächtern finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung zur dynamischen Aktualisierung der Tabelle mithilfe von vue2.0 in Kombination mit dem DataTable-Plugin
  • Vergleich der Vorteile von vue3 und vue2
  • Beispiele für die Verwendung von „Provide“ und „Inject“ in Vue2.0/3.0
  • Detaillierte Untersuchung von vue2.x - Erklärung der h-Funktion
  • Vue2.x-Reaktionsfähigkeit – einfache Erklärung und Beispiele
  • Zusammenfassung der Vorteile von Vue3 gegenüber Vue2
  • Vue2-Implementierungen bieten Injection für Reaktionsfähigkeit
  • Eine kurze Analyse des Reaktionsprinzips und der Unterschiede von Vue2.0/3.0
  • vue2.x-Konfiguration von vue.config.js zur Projektoptimierung
  • Beispiel für handschriftliches Vue2.0-Daten-Hijacking
  • Vue2.x - Beispiel für die Verwendung von Anti-Shake und Throttling
  • Der Quellcode zeigt, warum Vue2 Daten und Methoden direkt abrufen kann

<<:  MySQL 8.0.19 Installations-Tutorial

>>:  Detaillierte Erläuterung des Implementierungsprozesses des Docker-Cross-Host-Container-Kommunikations-Overlays

Artikel empfehlen

Detaillierte Erläuterung des Produktionsprinzips des jQuery-Atemkarussells

In diesem Artikel wird der spezifische Prozess de...

Tutorial zur Installation einer MySQL-ZIP-Datei

In diesem Artikel wird die spezifische Methode zu...

MySQL max_allowed_packet-Einstellung

max_allowed_packet ist ein Parameter in MySQL, de...

Detailliertes Tutorial zur Verwendung des Prettier Code-Plugins in vscode

Warum prettier verwenden? In großen Unternehmen k...

So kopieren Sie schnell große Dateien unter Linux

Daten kopieren Beim Remote-Kopieren von Daten ver...

Javascript zum Umschalten durch Klicken auf das Bild

Durch Klicken Bilder zu wechseln, ist im Leben ei...

jQuery-Plugin zum Erreichen einer Bildunterbrechung

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

Zusammenfassung der Lösungen für allgemeine Linux-Probleme

1. Centos7 unter VMware verbinden und eine feste ...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.19

In diesem Artikel wird das grafische Tutorial zur...

Mehrere CSS3-Tag-Abkürzungen (empfohlen)

border-radius: CSS3 abgerundete Ecken Syntax: bor...

Teilen Sie die Fallstricke von MySQLs current_timestamp und ihre Lösungen

Inhaltsverzeichnis MySQLs current_timestamp-Falle...

CSS3 realisiert eine springende Ballanimation

Normalerweise besuche ich gerne die Sonderseiten ...