Frage: Es gibt 2 Token im Projekt, einen mit einer Gültigkeitsdauer von 2 Stunden (bezeichnet als: Kurztoken) und einen mit einer Gültigkeitsdauer von 14 Tagen (bezeichnet als: Langtoken). Antwort: 1. Aus Sicherheitsgründen und um Token-Lecks zu verhindern, können alle Anforderungen an Serverressourcen nur Kurztoken verwenden, und Kurztoken sind nur 2 Stunden gültig.
Nur in dieser Schnittstelle können Sie Anfragen mit langen Token senden. 2. Um die Benutzererfahrung zu verbessern, fordern Sie Benutzer nicht direkt auf, die Seite zu verlassen, die sie gerade aufrufen Vue von „vue“ importieren Axios von „Axios“ importieren Importieren Sie VueAxios von „vue-axios“. importiere { getToken, setToken } aus './token' Router aus „../router/index.js“ importieren importiere { Toast } von 'vant' Vue.use(VueAxios, axios) const Instanz = axios.create({ baseURL: 'Basis-URL', Zeitüberschreitung: 100000 }) // Anforderungs-Interceptor hinzufügen instance.interceptors.request.use( Funktion (Konfiguration) { //Token einheitlich hinzufügen getToken() && (config.headers['Authorization']= `Träger ${getToken().token}`) Konfiguration zurückgeben }, Funktion (Fehler) { returniere Promise.reject(Fehler) } ) //Antwort-Interceptor hinzufügen/** * 1.wenn 401, sonst ist es egal* 2.wenn ein Token vorhanden ist, sonst zur Anmeldeseite springen* 3.try-catch verwende refresh_token, um das Token abzurufen, wenn erfolgreich, sonst ist refresh_token ungültig, zur Anmeldeseite springen* 4.Speichern Sie das erhaltene Token, aktualisieren Sie es und fahren Sie mit der Ausführung der vom Benutzer gewünschten Operation fort*/ Instanz.Interceptors.Antwort.Verwenden( Funktion (Antwort) { Antwort zurückgeben }, asynchrone Funktion (Fehler) { if (401 === Fehler.Antwort.Status) { setTimeout('Konsole.löschen()', 2000) wenn (getToken()) { versuchen { // Angemeldet, aber das kurze T ist abgelaufen. Verwenden Sie das lange T, um das kurze T abzurufen (Benutzertoken aktualisieren). lass res = warte auf axios({ URL: 'Basisadresse/v1_0/Autorisierungen', Methode: 'PUT', Header: {Autorisierung: `Träger ${getToken().refresh_token}`} }) // Kurzes T aktualisieren let token = getToken() token.token = res.daten.daten.token setzeToken(Token) // Benutzervorgang fortsetzen return instance(error.config) } Fehler abfangen { // Long T schlägt fehl, springe zur Anmeldeseite Toast.fail('Bitte zuerst anmelden') router.push({ Pfad: '/login' }) } } anders { // Nicht angemeldet, springe zur Anmeldeseite Toast.fail('Bitte zuerst anmelden') router.push({ Pfad: '/login' }) } } returniere Promise.reject(Fehler) } ) Standardinstanz exportieren Oben finden Sie den detaillierten Inhalt der Analyse der Gründe und Beispielcodes von 2 Tokens in der Webprojektentwicklung. Weitere Informationen zur Webprojektentwicklung finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Beispielanalyse der Verwendung von Dockerfile-Textdateien
>>: Zusammenfassung der MySQL-Datenbank-ähnlichen Anweisung zur Platzhalter-Fuzzy-Abfrage
Einführung Wenn Sie mit der Verwendung von JDBC z...
Inhaltsverzeichnis 1. Übersicht 1.1 Verwendung vo...
Einführung in Docker Docker ist eine Open-Source-...
Inhaltsverzeichnis Vorwort Was sind Enumerationen...
Wenn die Tabelle Zehntausende Datensätze enthält,...
Dieser Artikel beschreibt anhand von Beispielen d...
Wenn Sie es nicht durch direktes Klicken auf „Dow...
Inhaltsverzeichnis 1. Einleitung 2. Direkte Wiede...
1. Befehlseinführung Mit dem Datumsbefehl wird di...
Dieser Artikel stellt häufige Probleme von Xshell...
Inhaltsverzeichnis 1. Zweck 2. Grammatik 3. Üben ...
Software-Download Link zum Herunterladen der Soft...
Die Suchleistung von der schnellsten bis zur lang...
Da Frameset und Body auf derselben Ebene liegen, k...
MySQL-Escape Escape bedeutet die ursprüngliche Se...