Verfahren Jede Anforderungsschnittstelle enthält ein Token zur Überprüfung Schlüsselwert: Zufallszahl + Zeitstempel + Salt DemoMini-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-SchnittstelleRouting-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:
|
<<: Informationen zum Debuggen von CSS-Cross-Browser-Style-Fehlern
>>: Detaillierte Anwendungsfälle von MySql Escape
In diesem Artikel zeigt Ihnen der Blogger die häu...
Inhaltsverzeichnis Manuelle Sicherung Timer-Siche...
Inhaltsverzeichnis Fügen Sie dem GitHub+Jekyll-Bl...
Prämisse In komplexen Szenarien müssen große Date...
pthread_create-Funktion Funktionseinführung pthre...
1. Voraussetzungen Bei der Entwicklung von Front-...
Vorwort Dies ist eine alte Forderung, aber es gib...
Quelle: http://www.ruoyi.vip/ Vue von „vue“ impor...
Ich finde, dass die Erklärung von this.$set im In...
Manchmal möchten Sie eine App testen, aber nicht ...
Installieren Sie Nginx Ziehen Sie zuerst das Cent...
Vorwort: Vue3.0 implementiert dreidimensionales S...
Installation der MySQL-Dekomprimierungsversion un...
Ich habe mich beim Backend angemeldet, um die Lös...
Vorne geschrieben Ich weiß nicht, wer als Erster ...