VUE implementiert Token-Anmeldeüberprüfung

VUE implementiert Token-Anmeldeüberprüfung

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 Token

Erstellen 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 an

Einloggen

(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ächter

Dieser 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äger

Dieser 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:
  • Vue implementiert Benutzeranmeldung und Token-Verifizierung
  • Vue implementiert einen Login-Verifizierungscode
  • Implementierungscode für die gleitende Vue-Anmeldungsüberprüfung
  • Verwenden Sie beforeEach von vue-route, um die Funktion „Navigation Guard“ (Anmeldung vor Routensprung überprüfen) zu implementieren.
  • Vue tatsächlicher Implementierungscode zur Vue-Anmeldeüberprüfung im Kampf
  • Implementierungscode für die Vue-Anmelderegistrierung und Token-Verifizierung
  • So implementieren Sie den Anmeldestatus zur Verifizierung in Vue
  • Vue Router + Vuex implementiert eine Login-Verifizierungslogik für die Homepage
  • Ein Beispiel für die Verwendung des Routing-Hooks durch Vue, um nach Ablauf des Tokens zur Anmeldeseite zu springen
  • Anmeldung zur Token-Verifizierung im Vue-Projekt (Front-End-Teil)

<<:  MySQL 8.0.19 WinX64-Installations-Tutorial und Ändern des Initialpassworts unter Windows 10

>>:  Docker erstellt die Codeerkennungsplattform SonarQube und erkennt den Prozess von Maven-Projekten

Artikel empfehlen

12 Gesetze des Webdesigns für sauberen Code [Grafik]

Schöner Code ist die Grundlage einer schönen Websi...

Detaillierte Erklärung zur Verwendung von Filtereigenschaften in CSS3

Als ich kürzlich das Intranet-Portal änderte, sti...

So implementieren Sie die Fernzugriffskontrolle in Centos 7.4

1. SSH-Remoteverwaltung SSH ist ein sicheres Kana...

Grundlegende Befehle für MySQL-Datenbankoperationen

1. Erstellen Sie eine Datenbank: Daten erstellen ...

So stellen Sie das umfassende Benutzererlebnis sicher

Verwandte Artikel: Website-Design für Benutzererfa...

So generieren Sie eine eindeutige Server-ID in MySQL

Vorwort Wir alle wissen, dass MySQL die Server-ID...

JavaScript implementiert die asynchrone Übermittlung von Formulardaten

In diesem Artikelbeispiel wird der spezifische Ja...

Detaillierte Erläuterung gängiger Methoden von JavaScript Array

Inhaltsverzeichnis Methoden, die das ursprünglich...

Detaillierte Erklärung des Rewrite-Moduls von Nginx

Das Umschreibmodul ist das Modul ngx_http_rewrite...

Ist ein Design, das den Designspezifikationen entspricht, ein gutes Design?

In den letzten Jahren meiner Karriere habe ich an...

Linux IO-Multiplexing Epoll-Netzwerkprogrammierung

Vorwort In diesem Kapitel werden grundlegende Lin...

So erhalten Sie Root-Berechtigungen in einem Docker-Container

Zunächst muss Ihr Container laufen Sie können die...