Vue-Routing zum Implementieren der Login-Abfangung

Vue-Routing zum Implementieren der Login-Abfangung

1. Übersicht

Bei der Projektentwicklung muss bei jedem Routenwechsel oder Aktualisieren einer Seite festgestellt werden, ob der Benutzer angemeldet ist. Das Frontend kann dies beurteilen, und das Backend wird dies ebenfalls beurteilen. Am besten ist es, wenn unser Frontend dies ebenfalls beurteilen kann.

vue-router bietet Navigations-Hooks: globalen Vornavigations-Hook beforeEach und globalen Post-Navigations-Hook afterEach, die vor und nach der Routenänderung ausgelöst werden. Daher muss im beforeEach-Navigations-Hook ermittelt werden, ob der Benutzer angemeldet ist.

Der Navigations-Hook hat 3 Parameter:

1. nach: das einzutragende Ziel-Routingobjekt;

2. von: dem Routenobjekt, das die aktuelle Navigation verlassen wird;

3. next: Erst nach dem Aufruf dieser Methode können Sie in die nächste Hook-Funktion (afterEach) einsteigen.

next()//Gehe direkt zu der Route, auf die to zeigt
next(false) //Unterbreche die aktuelle Route
next('route') // Zur angegebenen Route springen
next('error') //zur Fehlerroute springen

2. Routing Navigation Guard zur Implementierung der Login-Abfangung

Hier verwenden wir zur Demonstration ein leeres Vue-Projekt. Es gibt hauptsächlich zwei Seiten, nämlich die Startseite und die Anmeldung.

Beim Besuch der Homepage müssen Sie sich anmelden, andernfalls werden Sie auf die Anmeldeseite weitergeleitet.

Erstellen Sie ein leeres Vue-Projekt und erstellen Sie Login.vue in src\components

<Vorlage>
 <div>Dies ist die Anmeldeseite</div>
</Vorlage>

<Skript>
 Standard exportieren {
  Name: "Anmelden"
 }
</Skript>

<Stilbereich>

</Stil>

Ändern Sie src\router\index.js

Vue von „vue“ importieren
Router von „vue-router“ importieren
importiere HelloWorld aus '@/components/HelloWorld'
Login aus '@/components/Login' importieren


Vue.use(Router)

const router = neuer Router({
 Modus: „Verlauf“, // entferne das # in der URL
 Routen: [
 {
  Pfad: '/login',
  Name: 'Anmelden',
  Meta: {
  Titel: 'Anmelden',
  requiresAuth: false, // false bedeutet, dass keine Anmeldung erforderlich ist},
  Komponente: Login
 },
 {
  Weg: '/',
  Name: "Hallo Welt",
  Meta: {
  Titel: 'Homepage',
  requiresAuth: true, // true bedeutet, dass eine Anmeldung erforderlich ist},
  Komponente: HelloWorld
 },

 ]
})

// Routing-Abfangen, bestimmen, ob eine Anmeldung erforderlich ist router.beforeEach((to, from, next) => {
 wenn (zu.meta.title) {
 //Feststellen, ob ein Titel vorhanden ist document.title = to.meta.title;
 }
 // console.log("Titel",Dokument.Titel)
 // Verwenden Sie requiresAuth, um zu bestimmen, ob für die aktuelle Routennavigation eine Anmeldung erforderlich ist, if (to.matched.some(record => record.meta.requiresAuth)) {
 let token = localStorage.getItem('token')
 // konsole.log("Token",Token)
 // Wenn ein Login-Zugriff erforderlich ist, prüfen Sie, ob der Benutzer angemeldet ist, if (!token) {
  nächste({
  Pfad: '/login',
  Abfrage: { Umleitung: zu.vollständigerPfad }
  })
 } anders {
  nächste()
 }
 } anders {
 next() // Stellen Sie sicher, dass Sie next() aufrufen.
 }
})

Standardrouter exportieren;

veranschaulichen:

In jeder Route werden Metadaten hinzugefügt. Das Feld „requiresAuth“ wird verwendet, um anzugeben, ob eine Anmeldung erforderlich ist.

In router.beforeEach wird eine Tokenprüfung durchgeführt. Wenn es leer ist, springe zur Anmeldeseite.

Zur Homepage

http://localhost:8080

Springt zu

http://localhost:8080/login?redirect=%2F

Die Wirkung ist wie folgt:

Öffnen Sie F12, rufen Sie die Konsole auf und schreiben Sie manuell ein Token

localStorage.setItem('Token', '12345678910')

Die Wirkung ist wie folgt:

Besuchen Sie die Homepage erneut und Sie können normal darauf zugreifen.

Öffnen Sie die Anwendung, löschen Sie den Wert im lokalen Speicher, klicken Sie mit der rechten Maustaste und klicken Sie auf „Löschen“

Aktualisieren Sie die Seite und Sie werden zur Anmeldeseite weitergeleitet.

Wie wäre es, ist es nicht einfach?

Oben finden Sie Einzelheiten zur Implementierung der Login-Abfangfunktion mit Vue-Routing. Weitere Informationen zur Vue-Login-Abfangfunktion finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Zwei Möglichkeiten zum Implementieren der Anmeldeabfangung im Vue+Axios-Frontend (Routing-Abfangung, HTTP-Abfangung)
  • Vue-Ressourcenanforderung zum Implementieren einer HTTP-Anmelde-Interception- oder Routing-Interception-Methode
  • Die Vue-Anmeldung fängt den Vorgang ab, nach der Anmeldung weiter zur angegebenen Seite zu springen
  • Vue implementiert das Abfangen von Anmeldungen
  • Beispielcode zur Implementierung der Login-Abfangung mit vue+axios

<<:  Detaillierte Erklärung zum Ersetzen in ein Beispiel in MySQL

>>:  Gerätetreiber des Linux-Kernels – Zusammenfassung der grundlegenden Hinweise zum Linux-Kernel

Artikel empfehlen

So aktivieren Sie das Root-Konto in Ubuntu 20.04

Nach der Installation von Ubuntu 20.04 gibt es st...

Detaillierte Erklärung der CSS-Animationsattribut-Keyframes

Wie lange ist es her, dass ich meine Kolumne aktu...

So ändern Sie den MySQL-Zeichensatz

1. Überprüfen Sie den Zeichensatz von MySQL Varia...

Ursachen und Lösungen für den Nginx 502 Bad Gateway-Fehler

Der Nginx 502 Bad Gateway-Fehler ist mir schon me...

So fügen Sie schnell 10 Millionen Datensätze in MySQL ein

Ich habe gehört, dass es eine Interviewfrage gibt...

MySQL 8.0.16 Installations- und Konfigurations-Tutorial unter CentOS7

Deinstallieren Sie die alte MySQL-Version (übersp...

Tutorial zur Installation und Deinstallation von Python3 unter Centos7

1. Installieren Sie Python 3 1. Installieren Sie ...

Zusammenfassung grundlegender SQL-Anweisungen in der MySQL-Datenbank

Dieser Artikel beschreibt anhand von Beispielen d...

Natives JS zur Realisierung eines einfachen Schlangenspiels

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

MySQL Dezimalzahl unsigned Update negative Zahlen in 0 umgewandelt

Heute habe ich bei der Überprüfung des Parallelit...