Analyse von 2 Token-Gründen und Beispielcode in der Webprojektentwicklung

Analyse von 2 Token-Gründen und Beispielcode in der Webprojektentwicklung

Bildbeschreibung hier einfügen

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).
Warum 2 Token verwenden?

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.

  • Diese Methode kann das Problem der Verhinderung von Token-Lecks immer noch nicht vollständig lösen, sondern die Sicherheit der Verhinderung von Token-Lecks nur bis zu einem gewissen Grad verbessern.
  • Die einzige Funktion eines langen Tokens besteht darin, damit einen neuen kurzen Token anzufordern, wenn der kurze Token abläuft.

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:
  • So erhalten Sie ein Token in Vue und schreiben es in den Header
  • Beispielcode zur Token-Verifizierung basierend auf Vue
  • Das SSM-Projekt implementiert die Persistenz der Benutzeranmeldung (Token).
  • Detaillierte Erläuterung der einfachen Praxis der Verwendung der Token-Authentifizierung im Vue-Projekt
  • Nach erfolgreicher Login-Verifizierung in Vue wird das Token gespeichert und jede Anfrage trägt und verifiziert den Token-Vorgang
  • Vue-Interceptor behandelt den Ablauf des Tokens

<<:  Beispielanalyse der Verwendung von Dockerfile-Textdateien

>>:  Zusammenfassung der MySQL-Datenbank-ähnlichen Anweisung zur Platzhalter-Fuzzy-Abfrage

Artikel empfehlen

Schritte und Methoden zur Bindung von Domänennamen und IPs in der Alibaba Cloud

1 Rufen Sie die Alibaba Cloud-Konsole auf, suchen...

Details zum Lazy Loading im Vue-Routing

Inhaltsverzeichnis 1. Was ist Lazy Loading von Ro...

Detaillierte Erklärung zur Verwendung mehrerer Timer in CocosCreator

1. setTimeOut Drucken Sie abc nach 3 Sekunden. Nu...

Lösung zur Installation von Vim im Docker-Container

Inhaltsverzeichnis Der Anfang der Geschichte Inst...

Detaillierte Erläuterung häufig verwendeter Nginx-Umschreibregeln

Dieser Artikel enthält einige häufig verwendete U...

Lösung für den Fehler beim Aufruf von Yum im Docker-Container

Beim Ausführen von yum im Dockerfile oder im Cont...

So fügen Sie der Seite über Element UI eine Seitennavigationsleiste hinzu

brauchen Fügen Sie eine Paging-Leiste hinzu, die ...

Detaillierte Anweisungen zur Installation von Jenkins auf Ubuntu 16.04

1. Voraussetzungen JDK wurde installiert echo $PA...

Parameter, um Iframe transparent zu machen

<iframe src="./ads_top_tian.html" all...

impress.js Präsentationsschicht-Framework (Demonstrationstool) - erste Erfahrungen

Ich habe ein halbes Jahr lang nicht gebloggt, wofü...

Implementierungsbeispiel für ein JS-natives zweispaltiges Shuttle-Auswahlfeld

Inhaltsverzeichnis Verwendung Strukturzweige Code...