In diesem Artikelbeispiel wird der spezifische Code von VUE zur Implementierung der Token-Anmeldeüberprüfung zu Ihrer Information geteilt. Der spezifische Inhalt ist wie folgt Der Prozess der Implementierung dieser Anmeldefunktion war voller Wendungen. Mittendrin tauchte ein Fehler auf und es dauerte zwei oder drei Tage, bis das Problem gelöst war. Ich war erschöpft und überfordert. Ich hatte das Gefühl, dass meine Ausdauer und Geduld auf ein neues Niveau gehoben worden waren. Glücklicherweise konnte ich den Fehler mithilfe meiner Klassenkameraden endlich beheben, aber ich fühlte mich wieder einmal oberflächlich, weil ich ein Anfänger bin. Die Fragen der Großen berührten immer wieder meine Wissenslücken ... Jetzt werde ich die Schritte zur Implementierung der Token-Anmeldeüberprüfung detailliert aufzeichnen, um Fehler in Zukunft zu vermeiden. 1. Kapseln Sie die Betriebsmethode des Stores auf dem TokenErstellen Sie zunächst einen Store-Ordner im src-Verzeichnis und dann eine main.js-Datei Der in main.js gespeicherte Code wird verwendet, um den Token-Wert abzurufen und den Wert des lokalen Tokens mithilfe von localStorage zu speichern und zu löschen. importiere Vue von „vue“; importiere Vuex von „vuex“; Vue.use(Vuex); exportiere standardmäßig neuen Vuex.Store({ Zustand: { Token: localStorage.getItem('Token') ? localStorage.getItem('Token') : '' }, Mutationen: setToken (Status, Token) { Zustand.Token = Token; localStorage.setItem("token",token.token); //Token speichern }, delToken(Status) { Zustand.Token = ''; localStorage.removeItem("token"); //Token löschen } } }) 2. Melden Sie sich zur Überprüfung über die Anmeldeoberfläche auf der Seite anEinloggen (1) Code des Eingabefeldes <input type="text" v-model="username" placeholder="Benutzername" /> <input type="Passwort" v-model="Passwort" placeholder="Passwort"/> (2) Skriptcode <Skript> importiere { mapMutations } von 'vuex'; Standard exportieren { Name: "managerLogin", Daten() { zurückkehren { Benutzername:'', //BenutzernamePasswort:'', //Passwort}; }, Methoden:{ ...mapMutations(['setToken']), login:funktion() { wenn (dieser.Benutzername === '' || dieses.Passwort === '') { alert("Konto oder Passwort dürfen nicht leer sein!"); } anders { // Gemäß der API-Schnittstelle, um das Token zu erhalten dies.$ajax.get('http:///api/wx/Public/login', { params: { //Eingehende Parameter Benutzername: dieser.Benutzername, Passwort: dieses.Passwort, Gerätetyp: "mobile" } }).Dann( res => { Konsole.log(Res.Daten); if(res.data.code===1) { //Wenn Code=1, war die Überprüfung erfolgreich this.setToken({token: res.data.data.token}); //Methode zum Zuweisen eines Tokens im Store this.$router.push('/managerHome'); } anders{ alert(res.data.msg); //Popup-Fehlermeldung} }).fangen(Fehler => { alert('Schnittstellenverbindungsfehler'); konsole.log(Fehler); }); } } } </Skript> Aus Konto abmelden <Skript> importiere {mapMutations} von „vuex“; Standard exportieren { Name: "manager_infor", Methoden:{ ...mapMutations(['delToken']), Ausfahrt:Funktion(){ dies.delToken({token:''}); dies.$router.push('/managerLogin'); } } } </Skript> 3. Routing-WächterDieser Code wird in der Routing-Datei abgelegt. Seine Funktion besteht darin, den lokal gespeicherten Token-Wert zur Anmeldeüberprüfung zu überprüfen, bevor die Seite springt, um festzustellen, ob gesprungen werden soll router.beforeEach((bis, von, weiter) => { if (to.path === '/managerLogin') { //Wenn die Seite, zu der gesprungen werden soll, die Anmeldeoberfläche ist next(); //direkt springen} else if (to.path === '/managerHome'){ //Wenn die Seite, zu der gesprungen werden soll, die persönliche Schnittstelle ist let token = localStorage.getItem('token'); //Den lokal gespeicherten Token-Wert abrufen if (token===null||token===''){ //Wenn das Token leer ist, schlägt die Überprüfung fehl und es wird zur Anmeldeseite gesprungen next('/managerLogin'); } else{ //Wenn es nicht leer ist, war die Überprüfung erfolgreich next(); } } anders{ nächste(); } }); Standardrouter exportieren; 4. Axios-AnforderungsabfangjägerDieser Code wird in der Datei main.js unter der Datei src abgelegt. importiere Axios von „Axios“; Store aus „./store/main“ importieren; Vue.prototype.$ajax = axios neuer Vue({ el: '#app', Router, store, //Store muss Komponenten hinzufügen: { App }, Vorlage: '<App/>' }) //Abfangjäger anfordern axios.interceptors.request.use(config => { //Überprüfen Sie, ob ein Token vorhanden ist. Wenn ja, fügen Sie das Token dem Header jeder Seite hinzu. wenn (store.state.token) { config.headers.common['XX-Token']=store.state.token //Das XX-Token sollte hier entsprechend dem Namen des Anfrageheaders im Login-Interface geschrieben werden} Konfiguration zurückgeben; }, Fehler => { // Anforderungsfehler return Promise.reject(error); }); //Antwort-Abfangjäger axios.interceptors.response.use( Antwort => { Antwort zurückgeben; }, error => { //Standardmäßig werden alle Fehler außer 2XX als Fehler betrachtet, wenn (error.response) { Schalter(Fehler.Antwort.Status){ Fall 401: dies.$store.commit('delToken'); router.replace({ //Zum Pfad der Anmeldeseite springen: '/managerLogin', query: { redirect: router.currentRoute.fullPath } // Nimm den umgeleiteten Routenpfad als Parameter und springe nach erfolgreichem Login zur Route}); } } gibt Promise.reject(Fehler.Antwort) zurück; } ); Mission erfüllt! Ich werde die Datenstruktur meiner Backend-Schnittstelle als Referenz veröffentlichen. Der obige Code wird bei Verwendung verschiedener Schnittstellen leicht unterschiedlich sein, daher müssen Sie wissen, wie Sie ihn flexibel verwenden können. 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:
|
<<: MySQL 8.0.19 WinX64-Installations-Tutorial und Ändern des Initialpassworts unter Windows 10
Schöner Code ist die Grundlage einer schönen Websi...
Alibaba Cloud Server installiert und konfiguriert...
Als ich kürzlich das Intranet-Portal änderte, sti...
1. SSH-Remoteverwaltung SSH ist ein sicheres Kana...
1. Erstellen Sie eine Datenbank: Daten erstellen ...
1. Zuerst müssen Sie den Zielselektor von CSS3 ve...
Verwandte Artikel: Website-Design für Benutzererfa...
Vorwort Wir alle wissen, dass MySQL die Server-ID...
In diesem Artikelbeispiel wird der spezifische Ja...
Inhaltsverzeichnis Methoden, die das ursprünglich...
Problembeschreibung Als ich heute den Seitenstil ...
Das Umschreibmodul ist das Modul ngx_http_rewrite...
In den letzten Jahren meiner Karriere habe ich an...
Vorwort In diesem Kapitel werden grundlegende Lin...
Zunächst muss Ihr Container laufen Sie können die...