ホームページ  >  記事  >  バックエンド開発  >  PHPでトークンを使用してインターフェースをリクエストする方法

PHPでトークンを使用してインターフェースをリクエストする方法

(*-*)浩
(*-*)浩オリジナル
2019-09-30 14:28:504277ブラウズ

PHPでトークンを使用してインターフェースをリクエストする方法

PHP トークン(トークン)

トークンとは「トークン」を意味し、サーバーによって生成される文字列です。クライアントがリクエストを行う。

上記の特性を考慮すると、モバイル端末とサーバー間の通信には 2 つのキー、つまり 2 つのトークンが必要です。 (推奨される学習: PHP ビデオ チュートリアル )

最初のトークンはインターフェイス用 (api_token);

2 番目のトークンはユーザー用 (user_token);

まず最初のトークン (api_token) について話しましょう

その責任は、インターフェイス アクセスの隠蔽性と有効性を維持し、インターフェイスが自分のユーザーのみに使用できるようにすることです。家族、どうやって?

参照アイデアは次のとおりです:

サーバーとクライアントが所有する共通の属性に基づいてランダムな文字列を生成します。クライアントはこの文字列を生成し、サーバーも同じアルゴリズムに従って生成する、クライアントの文字列を検証するために使用される文字列。

現在のインターフェイスは基本的に MVC モードであり、URL は基本的に RESTful スタイルです。URL の一般的な形式は次のとおりです:

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

インターフェイストークン生成ルールは次のとおりです:

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

1.「2013-12-18」は時刻です

2. 「暗号化キー」は秘密暗号化キーです。携帯電話がサーバーに「インターフェイス ユーザー」アカウントを登録する必要がある後、システムはアカウントとパスワードを割り当てます。データ テーブルの設計リファレンスは次のとおりです:

フィールド名 フィールド タイプ コメント

client_id varchar(20) クライアント ID

client_secret varchar(20) クライアント (暗号化) キー

サーバー インターフェイスの検証、PHP実装プロセスは次のとおりです:

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

以上がPHPでトークンを使用してインターフェースをリクエストする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。