Im Falle einer vollständigen Trennung von Front-End und Back-End lautet die allgemeine Idee zur Implementierung der Token-Verifizierung im Vue-Projekt wie folgt: 1. Beim ersten Anmelden ruft das Front-End die Back-End-Anmeldeoberfläche auf und sendet den Benutzernamen und das Kennwort 2. Das Backend empfängt die Anfrage, überprüft den Benutzernamen und das Passwort und gibt bei erfolgreicher Überprüfung ein Token an das Frontend zurück. 3. Das Frontend erhält das Token, speichert es in localStorage und vuex und springt zur Routing-Seite 4. Jedes Mal, wenn das Front-End zu einer Route springt, ermittelt es, ob im localStorage ein Token vorhanden ist. Wenn nicht, springt es zur Anmeldeseite. Wenn ja, springt es zur entsprechenden Routenseite. 5. Bei jedem Aufruf der Backend-Schnittstelle müssen Sie dem Anforderungsheader ein Token hinzufügen 6. Das Backend prüft, ob sich im Anforderungsheader ein Token befindet. Wenn ein Token vorhanden ist, ruft es das Token ab und überprüft es. Wenn die Überprüfung erfolgreich ist, gibt es Daten zurück. Wenn die Überprüfung fehlschlägt (z. B. wenn das Token abläuft), gibt es 401 zurück. Wenn sich im Anforderungsheader kein Token befindet, gibt es ebenfalls 401 zurück. 7. Wenn der vom Frontend empfangene Statuscode 401 lautet, löschen Sie die Token-Informationen und springen Sie zur Anmeldeseite vue-cli erstellt ein Projekt und erklärt kurz, was das Frontend tun muss: 1. Die Anmeldeschnittstelle wird erfolgreich aufgerufen und das Token wird in der Rückruffunktion in localStorage und vuex gespeichert anmelden.vue <Vorlage> <div> <input type="text" v-model="loginForm.username" placeholder="Benutzername"/> <input type="text" v-model="loginForm.password" placeholder="passwort"/> <button @click="login">Anmelden</button> </div> </Vorlage> <Skript> importiere { mapMutations } von 'vuex'; Standard exportieren { Daten () { zurückkehren { Anmeldeformular: { Benutzername: '', Passwort: '' }, BenutzerToken: '' }; }, Methoden: { ...mapMutations(['changeLogin']), anmelden() { lass _this = dies; wenn (this.loginForm.username === '' || this.loginForm.password === '') { alert('Konto oder Passwort dürfen nicht leer sein'); } anders { dies.axios({ Methode: 'post', URL: '/Benutzer/Anmelden', Daten: _this.loginForm }).dann(res => { Konsole.log(Res.Daten); _this.userToken = 'Träger ' + res.data.data.body.token; // Benutzertoken in vuex_this.changeLogin speichern ({ Authorization: _this.userToken }); _this.$router.push('/home'); alert('Anmeldung erfolgreich'); }).fangen(Fehler => { alert('Konto- oder Passwortfehler'); konsole.log(Fehler); }); } } } }; </Skript> index.js im Store-Ordner importiere Vue von „vue“; importiere Vuex von „vuex“; Vue.use(Vuex); const store = neuer Vuex.Store({ Zustand: { //Token speichern Autorisierung: localStorage.getItem('Autorisierung') ? localStorage.getItem('Autorisierung') : '' }, Mutationen: // Ändern Sie das Token und speichern Sie es im localStorage changeLogin (Status, Benutzer) { Status.Autorisierung = Benutzer.Autorisierung; localStorage.setItem('Autorisierung', Benutzer.Autorisierung); } } }); Standardspeicher exportieren; 2. Routing-Navigationswächter index.js im Router-Ordner importiere Vue von „vue“; Router von „vue-router“ importieren; Login aus „@/components/login“ importieren; importiere Home von „@/components/home“; Vue.use(Router); const router = neuer Router({ Routen: [ { Weg: '/', Umleitung: '/login' }, { Pfad: '/login', Name: 'Anmelden', Komponente: Login }, { Pfad: '/home', Name: 'Heimat', Komponente: Home } ] }); // Navigationswächter // Verwenden Sie router.beforeEach, um einen globalen Frontwächter zu registrieren, der ermittelt, ob der Benutzer angemeldet ist router.beforeEach((to, from, next) => { wenn (zu.Pfad === '/login') { nächste(); } anders { let token = localStorage.getItem('Autorisierung'); wenn (Token === null || Token === '') { weiter('/login'); } anders { nächste(); } } }); Standardrouter exportieren; 3. Token zum Anforderungsheader hinzufügen // Fügen Sie einen Anforderungs-Interceptor hinzu und fügen Sie dem Anforderungsheader ein Token hinzu axios.interceptors.request.use( Konfiguration => { wenn (localStorage.getItem('Autorisierung')) { config.headers.Authorization = localStorage.getItem('Authorization'); } Konfiguration zurückgeben; }, Fehler => { returniere Promise.reject(Fehler); }); 4. Wenn der Statuscode 401 lautet, löschen Sie die Token-Informationen und springen Sie zur Anmeldeseite localStorage.removeItem('Autorisierung'); dies.$router.push('/login'); 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:
|
<<: Tutorial zur Installation von Ubuntu 20.04 und NVIDIA-Treibern
>>: MySQL-Tabellenübergreifende Abfrage und Tabellenübergreifende Aktualisierung
1. Ursache Der offizielle Cerbot ist zu nervig. E...
Inhaltsverzeichnis 1. Routing-Konfiguration 2. Vu...
Einführung: Alle Browser verfügen über Standardst...
CSS realisiert den Prozessnavigationseffekt. Der ...
Laden Sie das Redis-Image herunter Docker-Pull yy...
Button wird ziemlich oft verwendet. Hier habe ich...
Inhaltsverzeichnis 1.Linux-Anmeldeschnittstelle 2...
Inhaltsverzeichnis 1. Ursprungswert und Bezugswer...
Vorwort Der Dienst wird seit mehreren Monaten auf...
Indextypen in MySQL Im Allgemeinen können sie in ...
Finden Sie das Problem Schauen wir uns zunächst d...
Ich glaube, jeder hat JD verwendet. Auf der Homep...
Wenn der Entwickler Dockerfile zum Erstellen des ...
Die Methode zum Abrufen der Zeigerposition in Jav...
Wenn wir Tabellen- und td-Tags Rahmen hinzufügen,...