Vue erhält Token zur Implementierung des Beispielcodes für die Token-Anmeldung

Vue erhält Token zur Implementierung des Beispielcodes für die Token-Anmeldung

Die Idee hinter der Verwendung eines Tokens zur Login-Verifizierung ist folgende:

1. Wenn Sie sich zum ersten Mal anmelden, ruft das Front-End die Back-End-Schnittstelle auf und übergibt den Benutzernamen und das Kennwort an das Back-End.

2. Das Backend empfängt die Anfrage, überprüft den Benutzernamen und das Passwort und gibt nach erfolgreicher Überprüfung einen Token-Wert an das Frontend zurück.

3. Das Front-End empfängt den vom Back-End übergebenen Token-Wert und speichert das Token im lokalen loaclStorage und vuex. (Dieses Projekt verwendet das Vue-Framework und die globale Statusverwaltung von Vuex)

4. Bei jedem Sprung der Front-End-Route wird ermittelt, ob im localStorage ein Token vorhanden ist. Wenn nicht, wird zur Anmeldeseite gesprungen. Wenn ja, wird zur entsprechenden Seite gesprungen.

5. Packen Sie eine öffentliche Anforderungsschnittstellenmethode und fügen Sie das Token jedes Mal in den Anforderungsheader ein, wenn Sie den Aufruf der Backend-Schnittstelle anfordern

6. Das Backend ermittelt, ob sich im Request-Header ein Token befindet. Wenn ein Token vorhanden ist, holt es sich das Token und verifiziert das Token. Wenn die Verifizierung erfolgreich ist, werden die Daten zurückgegeben. Wenn die Verifizierung fehlschlägt (z. B. wenn das Token abläuft), wird ein Statuscode an das Frontend zurückgegeben, normalerweise 401. Wenn sich im Request-Header kein Token befindet, wird ebenfalls 401 zurückgegeben. (Schritt 6 wird vom Backend ausgeführt, und das Frontend muss nur den vom Backend zurückgegebenen Status entsprechend verarbeiten.)

7. Wenn der vom Front-End-Backend zurückgegebene Statuscode 401 lautet, löschen Sie das Token und springen Sie zur Anmeldeseite.

Praktische Schritte

1. Fügen Sie in der Datei store.js im Projektspeicher globale Methoden zum Speichern und Löschen von Token hinzu.

// In store.js Methoden zum Hinzufügen und Löschen von Token in Mutationen hinzufügen. Vue von „vue“ importieren.
Vuex von „vuex“ importieren
Vue.Verwenden(Vuex)

const state = { // Global verwalteter Datenspeicher isLogin:'0',
	 ser:null,
	 Token:localStorage.getItem('Token') ? localStorage.getItem('Token'):'', // Token
};
exportiere standardmäßig neuen Vuex.Store({
	Zustand,
	getters:{ // Auf Datenänderungen warten getStorage(state){ // Die lokal gespeicherten Anmeldeinformationen abrufen if(!state.token){
	        Status.Token = JSON.parse(localStorage.getItem(Schlüssel))
	      }
	      Status-Token zurückgeben
	    }
	},
	Mutationen:
		$_setToken(state, value) { // Speichertoken setzen
	        Status.Token = Wert;
	        localStorage.setItem('Token', Wert);
	    },
	    $_removeStorage(Status, Wert){ // Token löschen
		      localStorage.removeItem('Token');
	    },
	}
})

2. Nachdem die Anmeldemethode auf der Anmeldeseite (login.vue) die Schnittstelle erfolgreich aufgerufen hat, wird das Token im lokalen Speicher localStorage gespeichert.

// login.vue Seitenmethoden:{
	loginFun(){
		this.$api.post('angeforderter Link zur Backend-Schnittstelle',{
				Daten:{
					userId:this.user, // Anmeldename userPwd:this.psw, // Anmeldekennwort }
		}).then((res) => {
			wenn(res.data.status == 200){
				var userInfo = res.data.data;
				dies.$store.commit('$_setToken', userInfo.token);
				Toast({ message: 'Anmeldung erfolgreich', type: 'success', duration: 1500}); // UI-Popup-Fenster-Eingabeaufforderung this.$router.push({ name:'homePage' }); // Zur Startseite springen } else {
				Toast({ message: res.data.message, duration: 1500}); // UI-Popup-Fenster-Eingabeaufforderung }
		})
	}
}

3. Fügen Sie in main.js einen Anforderungs-Interceptor hinzu und fügen Sie dem Anforderungsheader ein Token hinzu.

Vue von „vue“ importieren
App aus „./App.vue“ importieren
Router aus „./router/router“ importieren
Store aus „./store/store“ importieren

importiere PublicFun von './utils/publicFun' // Öffentliche Methode importiere './mintUi' // Importiere MintUi-Komponenten nach Bedarf. Konfiguriere sie bei Bedarf in mintUi.js. importiere '@/assets/mui/css/mui.css' // mui.css-Stil /* Axios-Plug-in importieren */
Axios von „Axios“ importieren
Vue.prototype.$http = axios;

// Globaler Routing-Konstruktor, bestimmt, ob eine Anmeldung erfolgen und zur Seite gesprungen werden soll router.beforeEach((to, from, next) => {
  if (to.matched.some(m => m.meta.requireAuth)) { // Anmeldung erforderlich if(window.localStorage.token && window.localStorage.isLogin === '1'){
      nächste()
    } sonst wenn (zu.Pfad !== '/login') {
      let token = window.localStorage.token;
      wenn (Token === 'null' || Token === '' || Token === undefiniert){
          weiter({Pfad: '/login'})
          Toast({ message: ‚Es wurde festgestellt, dass Sie nicht angemeldet sind. Bitte melden Sie sich vor der Bedienung an!‘, Dauer: 1500 })
      }
    } anders {
      nächste()
    }
  } else { // Keine Anmeldung nötig next()
  }
})



//Öffentliche URL konfigurieren
Axios.defaults.baseURL = "http://www.sinya.online/api/"
//Anforderungs-Interceptor hinzufügen axios.interceptors.request.use(
  Konfiguration =>{
    wenn (store.state.token) {
      config.headers.common['token'] = store.state.token
    }
    Konfiguration zurückgeben;
  },
  Fehler =>{
    //Was tun bei Anforderungsfehlern? return Promise.reject(error);
  })

//http-Antwort-Interceptor axios.interceptors.response.use(
  Antwort =>{
    Antwort zurückgeben;
  },
  Fehler=>{
    wenn (Fehler.Antwort) {
      Schalter(Fehler.Antwort.Status){
        Fall 401:
          localStorage.removeItem('Token');
          router.ersetzen({
            Pfad: '/views/login',
            Abfrage: {redirect: router.currentRoute.fullPath}//Nach erfolgreicher Anmeldung zur aktuell durchsuchten Seite springen})
      }
    }
  })

Vue.prototype.$publicFun = PublicFun // Globale öffentliche Methode einbinden Vue.prototype.$apps = Apps // öffentliche Methode app.js Vue.config.productionTip = false

neuer Vue({
  Router,
  speichern,
  rendern: h => h(App)
}).$mount('#app')

Token ansehen

Bildbeschreibung hier einfügen

Beim Verlassen

returnFun(){ // Abmelden MessageBox.confirm(this.lang.logoutTip).then(action => {
	     this.$store.commit('$_removeStorage'); // Anmeldeinformationen löschen this.$router.push({
	         Name:'Anmelden'
	     });
	     Toast({message:this.lang.logoutSuccess, Dauer: 1500});
	 }).fangen(()=>{})
} 

Dies ist das Ende dieses Artikels über den Beispielcode zum Abrufen eines Vue-Tokens zur Implementierung der Token-Anmeldung. Weitere relevante Inhalte zur Vue-Token-Anmeldung finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Vue implementiert den automatischen Sprung zur Anmeldeseite, wenn das Token abläuft
  • Anmeldung zur Token-Verifizierung im Vue-Projekt (Front-End-Teil)
  • Vue implementiert Benutzeranmeldung und Token-Verifizierung
  • VUE implementiert Token-Anmeldeüberprüfung
  • Implementierungscode für die Vue-Anmelderegistrierung und Token-Verifizierung

<<:  Analyse des Produktstatus im interaktiven Design, der im Design nicht ignoriert werden kann

>>:  Verwenden Sie die CSS Paint API, um auflösungsunabhängige, variable Hintergrundeffekte dynamisch zu erstellen

Artikel empfehlen

Detaillierte Analyse der Replikation in MySQL

1.MySQL-Replikationskonzept Dies bedeutet, dass d...

Beheben von Problemen beim Importieren und Exportieren von Mysql

Hintergrund Da ich alle meine Aufgaben auf Docker...

So implementieren Sie mehrere Parameter in el-dropdown in ElementUI

Aufgrund der zunehmenden Anzahl von Schaltflächen...

Einfaches Grafik-Tutorial zur Verwendung von Adobe Brackets

Adobe Brackets ist eine Open Source-, einfache un...

Das WeChat-Applet implementiert den Serveraufbau des Benutzeranmeldemoduls

Ich habe node.js zum Erstellen des Servers gewähl...

Navigationsdesign und Informationsarchitektur

<br />Wenn wir über Navigation sprechen, geh...

Zusammenfassung der Anwendungspraxis für Docker-Container des Node.js-Dienstes

In diesem Artikel wird die Verwendung und Install...

Versteckter Overhead von Unix/Linux-Forks

Inhaltsverzeichnis 1. Der Ursprung der Gabel 2. F...