Miniprogramm zur Implementierung der Token-Generierung und -Verifizierung

Miniprogramm zur Implementierung der Token-Generierung und -Verifizierung

Verfahren

Jede Anforderungsschnittstelle enthält ein Token zur Überprüfung
1. Bei erfolgreicher Verifizierung werden die Schnittstellendaten zurückgegeben
2. Die Überprüfung ist fehlgeschlagen (Token abgelaufen), das Applet fordert erneut die Generierung eines neuen Tokens an und fordert dann die vorherige Schnittstelle an

Schlüsselwert: Zufallszahl + Zeitstempel + Salt
Wert: ID+Sitzungsschlüssel+OpenID

Demo

Mini-Programm

<Ansicht>
  <button bindtap="loadTokenData">Token-Anforderungsdaten übertragen</button>
</Ansicht>
Seite({
  Daten: {
  },
 
  beim Laden:Funktion(){
    // diese._loadData();
  },
 
  //Token generieren
  setToken:Funktion(Rückruf){
    // wx.setStorageSync('Token', "sfspx64w8x47w14x3zX4x4wf4")
    var das = dies;
    wx.Anfrage({
      URL: „http://2021xcx-api.com/api/gettoken“,
      Methode: 'POST',
      Erfolg: Funktion (Res) {
        Konsole.log(Res.Daten);
        var Daten = res.Daten;
        wenn(Datencode==1){
          //Aktualisieren Sie den neu erworbenen Token-Wert wx.setStorageSync('token', data.token);
          // Rückruffunktion ausführen callback&&callback()
        }anders{
          das.setToken();
        }
      }
    })
  },
 ladeToeknData:Funktion(){
   var das = dies;
    wx.Anfrage({
      URL: „http://2021xcx-api.com/api/orders“,
      Methode: 'POST',
      Kopfzeile: {
        'Inhaltstyp': 'Anwendung/JSON',
        „Token“: wx.getStorageSync(„Token“)
      },
      Erfolg: Funktion (Res) {
        var Daten = res.Daten;
        console.log(Daten)
        wenn(data.code==903){
          // Token läuft ab, Anforderung zum erneuten Festlegen // Führen Sie eine Rückruffunktion aus und führen Sie diese Methode weiterhin aus, nachdem das Token erneut abgerufen wurde.
          das.setToken(das.loadTokenData)
        }
      }
    })
  },
}) 

Backend-Schnittstelle

Routing-Konfiguration

<?php
Route::post("api/orders", "api/index/getOrders");
//Zeichen
Route::post("api/gettoken", "api/token/createToken");

Index.php

<?php
Namespace App\API\Controller;
verwenden Sie app\api\controller\Token;
verwenden Sie think\Cache;
 
Klasse Index erweitert Token
{
    öffentliche Funktion getOrders(Token $token){
        $token->verifyToken();
 
        $data['Bestellungen'] = [
            'id' => 1,
            'Titel' => 'Apfel',
            'Zeit' => Zeit()
        ];
        echo json_encode($data);
 
    }
}

Token.php

<?php
Namespace App\API\Controller;
verwenden Sie think\Controller;
 
Klasse Token erweitert Controller
{
    geschützt $returnParam = [
        'Code' => 1,
        'msg' => 'Anfrage fehlgeschlagen'
    ];
 
    /**
     * [verifyToken überprüft, ob der Token mitgeführt wird und existiert]
     * @return [Typ] [Beschreibung]
     */
    öffentliche Funktion „verifyToken()“ {
        $token = Anfrage()->Header()['Token'];
        $isSetToken = cache($token);
        // dump($isSetToken); die;
        wenn(!$isSetToken){
            $this->returnParam['code'] = 903;
            $this->returnParam['msg'] = "Token-Verifizierung fehlgeschlagen";
            echo json_encode( $this->returnParam );die;
        }
    }
    
    /**
     * [createToken Token-Generierung]
     * Tipp: Benutzer-ID/Session_Kye/OpenID im Token aufzeichnen
     * @return [Typ] [Beschreibung]
     */
    öffentliche Funktion createToken()
    {
        $randStr = rand(1,9999);
        $zeit = Zeit();
        $Verkauf = "xixi2021";
 
        // * Hier simulieren – Die WeChat-Schnittstelle muss den Sitzungsschlüssel und die OpenID nicht abrufen $tokenValue = [
            'uid' => 1,
            'Sitzungsschlüssel' => '84848aasa',
            'openid' => '20oxl65wc4d4s5x7hwc',
            'Code' => 'sssaaeee'
        ];
        $tokenKey = md5($randStr.$time.$sale);
        //Token-Daten zwischenspeichern cache($tokenKey, json_encode($tokenValue), 1);
 
        $returnParam = [
            'Code' => 1,
            'Token' => $TokenSchlüssel
        ];
        echo json_encode($returnParam);
    }
   
} 

Dies ist das Ende dieses Artikels über die Generierung und Verifizierung von Miniprogramm-Token. Weitere relevante Inhalte zur Generierung und Verifizierung von Miniprogramm-Token finden Sie in früheren Artikeln auf 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:
  • So handhaben Sie den Token-Ablauf in WeChat-Miniprogrammen
  • Informationen zum Problem der automatischen Aktualisierung des Crawler-Tokens des WeChat Mini-Programms
  • Entwicklung eines Miniprogramms zur Implementierung einer einheitlichen Verwaltung von Access_Token
  • Anleitung zum Anmelden beim WeChat Mini-Programm und zum Austauschen von Token
  • Detaillierte Erklärung der WeChat-Applet-URL und Token-Einstellungen

<<:  Informationen zum Debuggen von CSS-Cross-Browser-Style-Fehlern

>>:  Detaillierte Anwendungsfälle von MySql Escape

Artikel empfehlen

Einfache Zusammenfassung der Methoden zur Leistungsoptimierung von Tomcat

Tomcat selbst optimieren Tomcat-Speicheroptimieru...

Lösen Sie das Problem beim Laden der Vektorkartenquelle in OpenLayers 3

1. Vektorkarte Vektorgrafiken verwenden gerade Li...

Eine kurze Diskussion darüber, wie man JS Schritt für Schritt lernt

Inhaltsverzeichnis Überblick 1. Verstehen Sie die...

CSS - overflow:hidden in Projektbeispielen

Hier sind einige Beispiele, wie ich diese Eigensch...

JS realisiert die Berechnung des Gesamtpreises der Waren im Warenkorb

JS berechnet den Gesamtpreis der Waren im Warenko...

Beispielanalyse der Listen-Direktive in Nginx

Handlungsüberblick Im vorherigen Artikel haben wi...

Detaillierte Erklärung der Entwurfsmuster des JavaScript-Frameworks

Inhaltsverzeichnis mvc MVP mvv Die Quelle von Vue...

Docker-Netzwerkprinzipien und detaillierte Analyse benutzerdefinierter Netzwerke

Docker virtualisiert eine Brücke auf dem Host-Rec...

Detaillierte Erklärung dieses Zeigeproblems in der JavaScript-Funktion

dieses Schlüsselwort Welches Objekt ruft die Funk...

So verwenden Sie MySQL, um die Datengenerierung in Excel abzuschließen

Excel ist das am häufigsten verwendete Tool zur D...

Praxis der Bereitstellung von in Python geschriebenen Webanwendungen mit Docker

Inhaltsverzeichnis 1. Docker installieren 2. Code...