Heim >Backend-Entwicklung >PHP-Problem >So fordern Sie eine Schnittstelle mit einem Token in PHP an

So fordern Sie eine Schnittstelle mit einem Token in PHP an

(*-*)浩
(*-*)浩Original
2019-09-30 14:28:504314Durchsuche

So fordern Sie eine Schnittstelle mit einem Token in PHP an

PHP-Token (Token)

Token bedeutet „Token“, eine vom Server generierte Zeichenfolge als Kennung der Kunde, die Anfrage zu stellen.

Basierend auf den oben genannten Merkmalen erfordert die Kommunikation zwischen dem mobilen Endgerät und dem Server 2 Schlüssel, also 2 Token. (Empfohlenes Lernen: PHP-Video-Tutorial)

Das erste Token ist für die Schnittstelle (api_token);

Das zweite Token ist für den Benutzer (user_token); >

Lassen Sie uns zuerst über das erste Token (api_token) sprechen

Seine Aufgabe besteht darin, die Verschleierung und Gültigkeit des Schnittstellenzugriffs aufrechtzuerhalten und sicherzustellen, dass die Schnittstelle nur von sich selbst verwendet werden kann Familie. Wie?

Die Referenzidee lautet wie folgt:

Generieren Sie eine zufällige Zeichenfolge basierend auf den gemeinsamen Attributen, die sowohl vom Server als auch vom Client gemeinsam genutzt werden Der Server generiert ihn nach demselben Algorithmus. Eine Zeichenfolge, mit der die Zeichenfolge des Clients überprüft wird.

Die aktuelle Schnittstelle ist im Wesentlichen der MVC-Modus und die URL ist im Wesentlichen im Restful-Stil. Das allgemeine Format der URL ist wie folgt:

http://blog.snsgou.com/模块名/控制器名/方法名?参数名1=参数值1&参数名2=参数值2&参数名3=参数值3

Die Schnittstelle Die Regeln für die Token-Generierung lauten wie folgt:

api_token = md5 ('模块名' + '控制器名' + '方法名' + '2013-12-18' + '加密密钥') = 770fed4ca2aabd20ae9a5dd774711de2

wobei

1. „2013-12-18“ die Tageszeit ist

2. „Verschlüsselungsschlüssel“ ist ein privater Verschlüsselungsschlüssel. Nachdem das Mobiltelefon ein „Schnittstellenbenutzerkonto“ auf dem Server registriert hat, weist das System ein Konto und ein Passwort zu:

Anmerkung zu Feldname und Feldtyp

client_id varchar(20) Client-ID

client_secret varchar(20) Client-(Verschlüsselungs-)Schlüssel

Überprüfung der Serverschnittstelle Der PHP-Implementierungsprozess ist wie folgt:

<?php 
// 1、获取 GET参数 值 
$module = $_GET[&#39;mod&#39;]; $controller = $_GET[&#39;ctl&#39;] 
$action = $_GET[&#39;act&#39;]; $client_id = $_GET[&#39;client_id&#39;]; 
$api_token = $_GET[&#39;api_token‘]; 
// 2、根据客户端传过来的 client_id ,查询数据库,获取对应的 client_secret 
$client_secret = getClientSecretById($client_id); 
// 3、服务端重新生成一份 api_token 
$api_token_server = md5($module . $controller . $action .  date(&#39;Y-m-d&#39;, time()) .  $client_secret); 
// 4、客户端传过来的 api_token 与服务端生成的 api_token 进行校对,如果不相等,则表示验证失败 
if ($api_token != $api_token_server) { 
    exit(&#39;access deny&#39;);  // 拒绝访问 
    } 
// 5、验证通过,返回数据给客户端  
?>

Das obige ist der detaillierte Inhalt vonSo fordern Sie eine Schnittstelle mit einem Token in PHP an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn