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

Detaillierte Erklärung des TIMESTAMPDIFF-Falls in MySQL

1. Syntax TIMESTAMPDIFF(Einheit, Beginn, Ende); G...

WeChat-Applet implementiert Formularüberprüfung

Validierung des WeChat-Applets-Formulars. Zu Ihre...

Analyse der Implementierung der MySQL-Anweisungssperre

Zusammenfassung: Analyse von zwei MySQL SQL-Anwei...

MySQL 5.7.20 Win64 Installations- und Konfigurationsmethode

mysql-5.7.20-winx64.zipInstallationspaket ohne In...

Zusammenfassung der Vorteile der Bereitstellung von MySQL Delayed Slaves

Vorwort Die Master-Slave-Replikationsbeziehung vo...

Das Laufschrift-Tag in HTML erzielt einen nahtlosen Laufschrift-Effekt

Das <marquee>-Tag ist ein Tag, das paarweis...

Vollständige Analyse der Webseitenelemente

Relative Längeneinheiten em Beschreibung: Relative...

Centos erstellt ein Prozessdiagramm für den Chrony-Zeitsynchronisationsserver

Meine Umgebung: 3 centos7.5 1804 Meister 192.168....

Eine kurze Erläuterung zum Anpassen der Hostdatei in Docker

Inhaltsverzeichnis 1. Befehl 2. docker-compose.ym...

Beispielcode zur Implementierung der Menüberechtigungssteuerung in Vue

Wenn Benutzer an einem Backend-Verwaltungssystem ...