PHP Token(令牌)
token的意思是“令牌”,是服務端產生的一串字串,作為客戶端進行請求的一個識別。
針對以上特點,行動端與服務端的通訊就需要2把鑰匙,也就是2個token。 (推薦學習:PHP影片教學)
第一個token是針對介面的(api_token);
第二個token是針對使用者的(user_token);
先說第一個token(api_token)
它的職責是維持介面存取的隱藏性和有效性,並保證介面只能給自家人用,怎麼做到?
參考想法如下:
按伺服器端和客戶端都擁有的共同屬性產生一個隨機字串,客戶端產生這個串,伺服器也按同樣演算法生成一個串,用來校驗客戶端的串。
現在的介面基本上是mvc模式,URL基本上是restful風格,URL大體格式如下:
http://blog.snsgou.com/模块名/控制器名/方法名?参数名1=参数值1&参数名2=参数值2&参数名3=参数值3
介面token產生規則參考如下:
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['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、验证通过,返回数据给客户端 ?>
以上是php如何帶著token請求接口的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3漢化版
中文版,非常好用

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能