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

So verwenden Sie DQL-Befehle zum Abfragen von Daten in MySQL

In diesem Artikel zeigt Ihnen der Blogger die häu...

Manuelle und geplante Sicherungsschritte für die MySQL-Datenbank

Inhaltsverzeichnis Manuelle Sicherung Timer-Siche...

Spezifische Verwendung von pthread_create in Linux zum Erstellen von Threads

pthread_create-Funktion Funktionseinführung pthre...

Beispielcode des Vue-Symbolselektors

Quelle: http://www.ruoyi.vip/ Vue von „vue“ impor...

Fallstudie zur dynamischen Datenbindung von this.$set in Vue

Ich finde, dass die Erklärung von this.$set im In...

So installieren Sie Android x86 in einer virtuellen VMware-Maschine

Manchmal möchten Sie eine App testen, aber nicht ...

Docker erstellt Python Flask+ Nginx+Uwsgi-Container

Installieren Sie Nginx Ziehen Sie zuerst das Cent...

vue3.0 + echarts realisiert dreidimensionales Säulendiagramm

Vorwort: Vue3.0 implementiert dreidimensionales S...

So versuchen Sie, Ihrem CSS einen Sticky-Effekt hinzuzufügen

Vorne geschrieben Ich weiß nicht, wer als Erster ...