亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Inhaltsverzeichnis
Routing -Grundlagen
Globale Wache
Route Exklusive Wache
Komponentenwache
Routing schützen
Routing -Struktur
Erinnere dich an die Quelle
benachrichtigen
abschlie?end
Heim Web-Frontend CSS-Tutorial Schutz der Vue -Routen mit Navigationsgarden schützen

Schutz der Vue -Routen mit Navigationsgarden schützen

Apr 19, 2025 am 10:29 AM

Schutz der Vue -Routen mit Navigationsgarden schützen

Die Sicherheitsauthentifizierung von Webanwendungen ist von entscheidender Bedeutung. Es erm?glicht eine personalisierte Erfahrung, l?dt benutzerspezifische Inhalte (z. B. Anmeldestatus) und kann auch zur Bewertung von Berechtigungen verwendet werden, um zu verhindern, dass nicht autorisierte Benutzer auf private Informationen zugreifen.

Anwendungen schützen Inhalte in der Regel, indem Inhalte unter eine bestimmte Route platziert und die Umleitungsregeln erstellt werden, wodurch die Benutzer aufgrund ihrer Berechtigungen zugreifen oder von Ressourcen abgehalten werden. Um den Inhalt zuverl?ssig hinter geschützte Routen zu legen, müssen unabh?ngige statische Seiten erstellt werden. Auf diese Weise k?nnen die Umleitungsregeln die Umleitung korrekt behandeln.

Für einzelne Seitenanwendungen (SPAS), die mit modernen Front-End-Frameworks wie VUE erstellt wurden, k?nnen Umleitungsregeln nicht zum Schutz von Routing verwendet werden. Da alle Seiten aus einer einzelnen Eintragsdatei aus der Sicht eines Browsers stammen, gibt es nur eine Seite: index.html. In Spa stammt die Routing -Logik normalerweise aus Routing -Dateien. Dieser Artikel konfiguriert hier haupts?chlich die Authentifizierung. Wir werden uns ausdrücklich auf die Navigationsbeamten von VUE angewiesen, um authentifizierungsspezifische Routen zu verarbeiten, da wir uns hilft, auf ausgew?hlte Routen zuzugreifen, bevor die Route vollst?ndig analysiert wird. Lassen Sie uns in die Funktionsweise gehen.

Routing -Grundlagen

Die Navigationsschutz ist eine spezifische Funktion im Vue -Router, die zus?tzliche Funktionen über die Aufl?sung von Routing bietet. Sie werden haupts?chlich verwendet, um Fehlerzust?nde zu behandeln und Benutzer nahtlos zu führen, ohne ihren Workflow abrupt zu unterbrechen.

In Vue Router gibt es drei Hauptkategorien von Wachen: Global Guards, Router Exklusive Guards und Komponentenw?chter. Wie der Name schon sagt, wird der globale Wachmann aufgerufen, wenn eine Navigation ausgel?st wird (d. H. Wenn sich die URL ?ndert), wird die ausschlie?liche Route ausschlie?t, wenn sie die zugeh?rige Route aufruft (d. H. Wenn die URL mit einer bestimmten Route übereinstimmt), und der Komponentenschutz wird beim Erstellen, Aktualisieren oder Zerst?ren von Komponenten in der Route aufgerufen. In jeder Kategorie gibt es noch andere M?glichkeiten, um Ihnen eine st?rkere Kontrolle über Anwendungsrouting zu erhalten. Hier finden Sie eine kurze Aufschlüsselung aller Methoden, die in jedem Navigationsschutz im Vue -Router verfügbar sind.

Globale Wache

  • beforeEach : Betrieb vor Eingabe einer Route (auf diesen Umfang k?nnen nicht zugegriffen werden)
  • beforeResolve : Aktion vor der Navigationsbest?tigung, jedoch nach Komponentenschutz (wie vorab, mit Zugriff auf diesen Bereich)
  • afterEach : Operation nach Routing -L?sung (kann die Navigation nicht beeinflussen)

Route Exklusive Wache

  • beforeEnter : Betrieb vor dem Eintritt in eine bestimmte Route (im Gegensatz zum globalen Guard kann dieser Wachmann darauf zugreifen)

Komponentenwache

  • beforeRouteEnter : Aktionen vor der Navigationsbest?tigung und vor der Erstellung von Komponenten (auf diese k?nnen nicht zugegriffen werden)
  • beforeRouteUpdate : Die Operation, die nach dem Aufrufen einer neuen Route mit derselben Komponente ausgeführt wurde
  • beforeRouteLeave : Betrieb vor dem Verlassen der Route

Routing schützen

Um sie effektiv zu implementieren, ist es hilfreich zu wissen, wann sie in einem bestimmten Szenario verwendet werden müssen. Wenn Sie beispielsweise Seitenansichten für die Analyse verfolgen m?chten, m?chten Sie m?glicherweise den globalen Afterach -Schutz verwenden, da er nach der Route ausgel?st wird und zugeh?rige Komponenten vollst?ndig analysiert werden. Wenn Sie Daten vor der Routenanalyse in den Vuex -Speicher vorlegen m?chten, k?nnen Sie die exklusive Wache der voreinerhaltenden Route verwenden.

Da unser Beispiel mit dem Schutz bestimmter Routen basierend auf den Zugriffsrechten der Benutzer zug?nglich ist, werden wir Komponentenw?chter verwenden, d. H. Vorher vor den Hooks. Mit dieser Navigationsgarde k?nnen wir auf die richtige Route zugreifen, bevor die Parsen abgeschlossen ist. Dies bedeutet, dass wir Daten abrufen oder prüfen k?nnen, ob die Daten geladen werden, bevor der Benutzer bestanden werden kann. Bevor Sie sich mit den Implementierungsdetails der Funktionsweise befassen, sehen wir uns kurz an, wie der voreinere Hook in unsere vorhandenen Routing -Dateien aufgenommen wird. Im Folgenden finden Sie unsere Beispielrouting -Datei, die unsere geschützten Routen enth?lt, die treffend als geschützt bezeichnet werden. Wir werden den voreinerhaltenden Haken wie folgt hinzufügen:

 const router = neuer vuerouter ({{
  Routen: [
    ...
    {
      Pfad: "/geschützt",
      Name: "geschützt",
      Komponente: Import (/ * webpackChunkName: "Protected" */'./Protected.vue'),
      voreinstürmen (zu, von, als n?chstes) {
        // Logik hier}
    }
  ]
})

Routing -Struktur

Die Struktur von voreinerem Unterschied unterscheidet sich nicht von anderen im Vue -Router erh?ltlichen Navigationsw?chter. Es akzeptiert drei Parameter: to "zukünftige" Route, auf die die Anwendung navigiert; from der "aktuellen/unmittelbar bevorstehenden Vergangenheit" -Route, auf die die Anwendung abreibt; next muss die Funktion aufgerufen werden, um die Route erfolgreich zu l?sen.

Im Allgemeinen wird bei der Verwendung von Vue Router als n?chstes ohne Argumente aufgerufen. Dies setzt jedoch einen dauerhaften Erfolgszustand aus. In unserem Fall m?chten wir sicherstellen, dass nicht autorisierte Benutzer nicht auf geschützte Ressourcen zugreifen k?nnen und dass es alternative Pfade gibt, die ordnungsgem?? umgeleitet werden k?nnen. Dazu werden wir einen Parameter an den n?chsten übergeben. Dazu werden wir den Routennamen verwenden, um durch den Benutzer zu navigieren. Wenn sie nicht autorisiert sind, sieht es so aus:

 n?chste({
  Name: "Dashboard"
})

Nehmen wir in unserem Beispiel an, wir haben einen Vuex -Store, in dem wir den Autorisierungs -Token des Benutzers speichern. Um zu überprüfen, ob der Benutzer Berechtigungen hat, werden wir diesen Gesch?ft überprüfen und angemessen oder über die Route versagen.

 voreinstürmen (zu, von, als n?chstes) {
  // Vuex Storage überprüfen //
  if (store.tertters ["Auth/HaSpermission"]) {
    n?chste()
  } anders {
    n?chste({
      Name: "Dashboard" // kehren Sie zur sicheren Route zurück //
    });
  }
}

Um sicherzustellen, dass Ereignisse synchron auftreten und dass die Route erst nach Abschluss der Vuex -Operation vorzeitig geladen wird, konvertieren wir den Navigationsschutz, um Async/Warten zu verwenden.

 asynchron voreinstürmen (zu, von, als n?chstes) {
  versuchen {
    var HaSermission = Warte Store.dispatch ("Auth/HaSermission");
    if (HaSermission) {
      n?chste()
    }
  } catch (e) {
    n?chste({
      Name: "Dashboard" // kehren Sie zur sicheren Route zurück //
    })
  }
}

Erinnere dich an die Quelle

Bisher haben unsere Navigationsbeamten ihren Zweck erreicht, sie daran zu hindern, auf geschützte Ressourcen zuzugreifen, indem sie nicht autorisierte Benutzer dorthin umgeleitet haben, woher sie stammen (d. H. Das Dashboard -Seiten). Trotzdem ist ein solcher Workflow destruktiv. Da die Umleitung unerwartet ist, k?nnte der Benutzer der Meinung, dass es sich um einen Benutzerfehler handelt, und versuchen, wiederholt auf die Route zuzugreifen, wobei letztendlich der Meinung ist, dass die Anwendung besch?digt ist. Um dieses Problem zu l?sen, erstellen wir eine Methode, mit der Benutzer wissen, wann und warum sie umgeleitet werden.

Wir k?nnen dies tun, indem wir Abfrageparameter an die n?chste Funktion übergeben. Auf diese Weise k?nnen wir den geschützten Ressourcenpfad an die Umleitungs -URL anbringen. Wenn Sie also den Benutzer auffordern m?chten, sich bei der App anzumelden oder die richtigen Berechtigungen zu erhalten, ohne sich daran zu erinnern, wo er angehalten hat, k?nnen Sie dies tun. Wir k?nnen auf den Pfad der geschützten Ressource zugreifen, um das an die voreingestellte Funktion übergebene Objekt wie nachstehend gezeigt: to.fullpath.

 asynchron voreinstürmen (zu, von, als n?chstes) {
  versuchen {
    var HaSermission = Warte Store.dispatch ("Auth/HaSermission");
    if (HaSermission) {
      n?chste()
    }
  } catch (e) {
    n?chste({
      Name: "Login", // zurück zur sicheren Route // zurückkehren //
      Abfrage: {redirectfrom: to.fullpath}
    })
  }
}

benachrichtigen

Der n?chste Schritt zur Verbesserung des Workflows für Benutzer, um keinen Zugriff auf geschützte Routen zu haben, besteht darin, ihnen Nachrichten zu senden, um sie über den Fehler und die Behebung des Problems zu informieren (indem sie sich anmelden oder die richtigen Berechtigungen erhalten). Dazu k?nnen wir Komponentenw?chter, insbesondere Beforerouteenter, verwenden, um zu überprüfen, ob Weiterleitungen aufgetreten sind. Da wir den Umleitungspfad als Abfrageparameter an unsere Routing -Datei übergeben, k?nnen wir jetzt das Routing -Objekt überprüfen, um festzustellen, ob die Umleitung aufgetreten ist.

 Beforerouteenter (an, von, n?chsten) {
  if (to.query.redirectfrom) {
    // etwas tun //
  }
}

Wie ich bereits erw?hnt habe, müssen alle Navigationsbeamten neben der Entschlossenheit die Route anrufen. Wie wir bereits gesehen haben, besteht der Vorteil der n?chsten Funktion darin, dass wir ein Objekt an dieses übergeben k?nnen. Was Sie vielleicht nicht wissen, ist, dass Sie in der n?chsten Funktion auch auf Vue -Instanzen zugreifen k?nnen. Wow! So sieht es aus:

 Weiter (() => {
  console.log (this) // Dies ist eine Vue -Instanz})

M?glicherweise haben Sie festgestellt, dass Sie bei der Verwendung voreiner Zeit nicht auf diesen Bereich zugreifen . Dies kann zwar der Fall sein, aber Sie k?nnen trotzdem auf die VUE -Instanz zugreifen, indem Sie die VM an die Funktion übergeben, wie Sie:

 Weiter (vm => {
  console.log (vm) // Dies ist eine Vue -Instanz})

Dies ist besonders bequem, da Sie die Dateneigenschaften jetzt ohne zus?tzliche Konfiguration einfach erstellen und ordnungsgem?? aktualisieren k?nnen. Mit dieser Methode erhalten Sie eine solche Komponente:

<template><div>
    {{errormsg}}

    ...

  </div>
</template>

<script>
export default {
  name: "Error",
  data() {
    return {
      errorMsg: null
    }
  },
  beforeRouteEnter(to, from, next) {
    if (to.query.redirectFrom) {
      next(vm => {
        vm.errorMsg =
          "對(duì)不起,您沒有訪問請(qǐng)求路由的權(quán)限"
      })
    } else {
      next()
    }
  }
}
</script>

abschlie?end

Der Prozess der Integration der Authentifizierung in Ihre Anwendung kann schwierig sein. Wir erl?utern, wie nicht autorisierte Benutzer verhindern k?nnen, auf Routen zuzugreifen, und wie ein Workflow basierend auf den Benutzerberechtigungen erstellt werden, um Benutzer in geschützte Ressourcen umzuleiten oder von diesen weg. Bisher geht unsere Annahme, dass Sie die Authentifizierung in Ihrer Anwendung konfiguriert haben. Wenn Sie es noch nicht konfiguriert haben und es schnell zum Laufen bringen m?chten, empfehle ich dringend, die Authentifizierung als Dienst zu verwenden. Es gibt einige Anbieter wie das Authentifizierungs -Widget von Netlify oder Auth0's Lock.

Das obige ist der detaillierte Inhalt vonSchutz der Vue -Routen mit Navigationsgarden schützen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1488
72
CSS -Tutorial zum Erstellen von Ladespinner und Animationen CSS -Tutorial zum Erstellen von Ladespinner und Animationen Jul 07, 2025 am 12:07 AM

Es gibt drei M?glichkeiten, einen CSS -Laderotator zu erstellen: 1. Verwenden Sie den Basisrotator der Grenzen, um eine einfache Animation durch HTML und CSS zu erreichen. 2. Verwenden Sie einen benutzerdefinierten Rotator mit mehreren Punkten, um den Sprungeffekt durch verschiedene Verz?gerungszeiten zu erreichen. 3. Fügen Sie einen Rotator in die Taste hinzu und wechseln Sie den Klassen über JavaScript, um den Ladestatus anzuzeigen. Jeder Ansatz betont die Bedeutung von Entwurfsdetails wie Farbe, Gr??e, Zug?nglichkeit und Leistungsoptimierung, um die Benutzererfahrung zu verbessern.

Behandeln Sie Probleme und Pr?fixe von CSS -Browser -Kompatibilit?t und Pr?fixe Behandeln Sie Probleme und Pr?fixe von CSS -Browser -Kompatibilit?t und Pr?fixe Jul 07, 2025 am 01:44 AM

Um mit CSS -Browser -Kompatibilit?t und Pr?fixproblemen umzugehen, müssen Sie die Unterschiede im Browser -Support verstehen und Anbieterpr?fixe vernünftigerweise verwenden. 1. Verstehen Sie gemeinsame Probleme wie Flexbox und Grid -Unterstützung, Position: Sticky Invaly und Animationsleistung ist unterschiedlich. 2. überprüfen Sie den Best?tigungsunterstützungsstatus von Caniuse. 3. Verwenden Sie korrekt -webkit-, -moz-, -ms-, -o- und andere Herstellerpr?fixe; 4. Es wird empfohlen, Autoprefixer zu verwenden, um automatisch Pr?fixe hinzuzufügen. 5. Postcss installieren und Browserlist konfigurieren, um den Zielbrowser anzugeben. 6. automatisch die Kompatibilit?t w?hrend des Baus bew?ltigen; 7. Modernizr -Erkennungsmerkmale k?nnen für alte Projekte verwendet werden; 8. Keine Notwendigkeit, die Konsistenz aller Browser zu verfolgen,

Was ist der Unterschied zwischen Anzeige: Inline, Anzeige: Block und Anzeige: Inline-Block? Was ist der Unterschied zwischen Anzeige: Inline, Anzeige: Block und Anzeige: Inline-Block? Jul 11, 2025 am 03:25 AM

ThemaNDiffercesbetweenplay: Inline, Block, Andinline-Blockinhtml/CsSarelayoutBehavior, Spaceusage und Stylingcontrol.1.inlineelementsflowwithtext, Don'tstartonNewlines, Ignorewidth/HeighthThorchingstyhorching-/idelthorchorching/ardaldhordhortaliTalding/ardaldhordelthortex

Erstellen von benutzerdefinierten Formen mit CSS-Clip-Pfad Erstellen von benutzerdefinierten Formen mit CSS-Clip-Pfad Jul 09, 2025 am 01:29 AM

Verwenden Sie das Clip-Pfad-Attribut von CSS, um Elemente in benutzerdefinierte Formen wie Dreiecke, kreisf?rmige Kerben, Polygone usw. zu erregen, ohne sich auf Bilder oder SVGs zu verlassen. Zu den Vorteilen geh?ren: 1.. Unterstützt eine Vielzahl von Grundformen wie Circle, Ellipse, Polygon usw.; 2. reagierende Anpassung und anpassbar an mobile Terminals; 3. Einfach zu animation und kann mit Hover oder JavaScript kombiniert werden, um dynamische Effekte zu erzielen. 4. Es wirkt sich nicht auf den Layoutfluss aus und erfüllt nur den Anzeigebereich. H?ufige Verwendungen sind z. B. kreisf?rmiger Clip-Pfad: Kreis (50pxatcenter) und Dreieck-Clip-Pfad: Polygon (50%0%, 100 0%, 0 0%). Beachten

Das Styling besuchte Links unterschiedlich mit CSS Das Styling besuchte Links unterschiedlich mit CSS Jul 11, 2025 am 03:26 AM

Durch das Festlegen des von Ihnen besuchten Links k?nnen Sie die Benutzererfahrung verbessern, insbesondere in inhaltsintensiven Websites, um den Benutzern dabei zu helfen, sich besser zu navigieren. 1. Verwenden Sie CSS: Besuchte Pseudoklasse, um den Stil des besuchten Links wie Farb?nderungen zu definieren. 2. Beachten Sie, dass der Browser nur eine ?nderung einiger Attribute aufgrund von Datenschutzbeschr?nkungen erm?glicht. 3. Die Farbauswahl sollte mit dem Gesamtstil koordiniert werden, um abrupte abrupt zu werden. 4. Das mobile Terminal zeigt diesen Effekt m?glicherweise nicht an. Es wird empfohlen, ihn mit anderen visuellen Eingabeaufforderungen wie Icon -Auxiliary -Logos zu kombinieren.

Was ist die CSS -Malen -API? Was ist die CSS -Malen -API? Jul 04, 2025 am 02:16 AM

ThecsspaintingapienablesDynamicimageGenerationIncsSusingjavaScript.1.DevelopersCreateApaintworkletClassClasswithapaint () Methode.2.TheyRegisteritviaRegisterPaint (). 3.TheCustonTfunctionDenusedincsincssproperties ?hnlich von Background-Image.ThisallowsfordyNamicvis

Wie erstelle ich reaktionsschnelle Bilder mit CSS? Wie erstelle ich reaktionsschnelle Bilder mit CSS? Jul 15, 2025 am 01:10 AM

Um reaktionsschnelle Bilder mit CSS zu erstellen, kann es haupts?chlich durch die folgenden Methoden erreicht werden: 1. Verwenden Sie maximale Breite: 100% und H?he: Auto, damit das Bild an die Containerbreite anpasst und gleichzeitig den Anteil beibeh?lt. 2. Verwenden Sie die SRCSet- und Gr??enattribute von HTML, um die an verschiedenen Bildschirme angepassten Bildquellen intelligent zu laden. 3.. Verwenden Sie Objektfit und Objektposition, um die Bildaufbindung und Fokusanzeige zu steuern. Gemeinsam stellen diese Methoden sicher, dass die Bilder auf verschiedenen Ger?ten klar und wundersch?n pr?sentiert werden.

Was sind gemeinsame Inkonsistenzen von CSS -Browser? Was sind gemeinsame Inkonsistenzen von CSS -Browser? Jul 26, 2025 am 07:04 AM

Verschiedene Browser weisen Unterschiede in der CSS -Analyse auf, was zu inkonsistenten Anzeigeeffekten führt, haupts?chlich die Differenzentscheidung, die Berechnung des Boxmodells, die Flexbox- und Raster -Layout -Unterstützung und das inkonsistente Verhalten bestimmter CSS -Attribute. 1. Die Standardstilverarbeitung ist inkonsistent. Die L?sung besteht darin, CSSReset oder Normalize.css zu verwenden, um den anf?nglichen Stil zu vereinen. 2. Die Box -Modellberechnung der alten Version von IE ist unterschiedlich. Es wird empfohlen, eine einheitliche Boxgr??e: Border-Box zu verwenden. 3. Flexbox und Grid führen in Kantenf?llen oder in alten Versionen unterschiedlich ab. Weitere Tests und verwenden Sie Autoprefixer; 4. Einige CSS -Attributverhalten sind inkonsistent. Caniuse muss konsultiert und herabgestuft werden.

See all articles