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