Maison >développement back-end >Problème PHP >Comment demander une interface avec un jeton en php

Comment demander une interface avec un jeton en php

(*-*)浩
(*-*)浩original
2019-09-30 14:28:504337parcourir

Comment demander une interface avec un jeton en php

Jeton PHP (Token)

Jeton signifie "jeton", qui est une chaîne de chaînes générée par le serveur, comme identifiant pour au client d'en faire la demande.

Sur la base des caractéristiques ci-dessus, la communication entre le terminal mobile et le serveur nécessite 2 clés, soit 2 tokens. (Apprentissage recommandé : Tutoriel vidéo PHP)

Le premier jeton est pour l'interface (api_token

Le deuxième jeton est pour l'utilisateur (user_token

Parlons d'abord du premier jeton (api_token)

Sa responsabilité est de maintenir la dissimulation et la validité de l'accès à l'interface et de garantir que l'interface ne peut être utilisée que par elle-même famille. Comment ?

L'idée de référence est la suivante :

Générer une chaîne aléatoire basée sur les attributs communs partagés par le serveur et le client. Le client génère cette chaîne, et le serveur le génère selon le même algorithme. Une chaîne utilisée pour vérifier la chaîne du client.

L'interface actuelle est essentiellement en mode MVC et l'URL est essentiellement de style reposant. Le format général de l'URL est le suivant :

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

L'interface. Les règles de génération de jetons sont les suivantes :

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

1 '2013-12-18' est l'heure de la journée

2. La « clé de cryptage » est une clé de cryptage privée. Une fois que le téléphone mobile doit enregistrer un compte « utilisateur d'interface » sur le serveur, le système attribuera un compte et un mot de passe. La référence de conception de la table de données est la suivante :

.

Nom du champ et annotation du type de champ

client_id varchar(20) ID client

client_secret varchar(20) Clé client (cryptage)

Vérification de l'interface du serveur , le processus d'implémentation PHP est le suivant :

<?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、验证通过,返回数据给客户端  
?>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn