本文目錄一覽:
- 1、普及一下知識php如何做桌面客戶端
- 2、用PHP做服務器接口客戶端用http協議POST訪問安全性一般怎麼做
- 3、客戶端怎麼調用服務端的php接口
- 4、PHP Guzzle接口請求庫應用
- 5、PHP—APP接口02
- 6、php 接口判斷客戶端後返回值的獲取
普及一下知識php如何做桌面客戶端
WinBinder 是一種開源的 PHP 動態擴展(.dll) ,也算是腳本編程語言,為php 在window 下的開發提供用戶界面UI ,它負責調用window 的API 接口。其運行 PHP 程序員輕鬆地使用 PHP 創建 Windows 應用程序。當然,這個只能在 Windows 下運行。本身是一個軟件,php 程序員可以通過這個軟件開發界面。官方網站說得很不錯,無須編譯php. 只要保存文件擴展為.phpw ,然後用 php.exe 打開就可以運行。具體開發感受如何,要試驗一下才知道。初步感覺不會比php-gtk 差。
可以在此處下載到 WinBinder 的包 , 下那個 .zip 包,一般不需要用 .exe 的。下完之後解壓縮,將 winbinder_xxx\PHP\PHP4\ext 目錄下的(如果用的是 PHP5 則複製 PHP5 目錄下的) php_winbinder.dll 複製到 PHP 擴展目錄下,一般在 C:\php\extensions ,然後修改 php.ini 文件,加上:
extension=php_winbinder.dll
然後到打開命令行(cmd ),進入到 winbinder_xxx\Code\Samples 目錄下,運行:
C:phpcliphp.exe manytests_main.phpw
這樣就可以看到 Windows 窗口了,測試用的例子很多,可以都試試。我試了一下中文,還是支持得不錯的,想想也是,WinBinder 是通過擴展的方式,加載到 PHP 中,其調用的都是 Windows 的 APIs 。實際上可以將 WinBinder 分為兩層,一層是底層,叫 API 層,作為 PHP 擴展直接連接 Windows 的 API ,並為第二層(高層,叫 PHP 層)提供統一的調用接口。
你以為php只能做桌面應用?錯移動應用也照樣拿下。PHP for Android讓你用你最熟悉的php開發android軟件。
總之,php的插件工具雖然可以實現開發桌面客戶端,但是並不建議,因為不方便而且開發效率極低。
用PHP做服務器接口客戶端用http協議POST訪問安全性一般怎麼做
1.請求頭裡帶用戶username和password,到服務器端做驗證,通過才繼續下邊業務邏輯。
優點:防止了服務器端api被隨意調用。
缺點:每次都交互用戶名和密碼,交互量大,且密碼明文傳輸不安全。
2.第一次請求,要求username和password,驗證通過,種cookie到客戶端,app保存cookie值。
每次請求帶上cookie。
點評:和pc上瀏覽器認證的原理一樣了。
以上兩點,只有註冊用戶,才能有權訪問業務邏輯,而app有大量的不需要註冊數據api。
客戶端怎麼調用服務端的php接口
用php的CURL,post或者get數據到服務端處理,服務器端返回json格式的數據
PHP Guzzle接口請求庫應用
Guzzle是一個PHP的HTTP客戶端,用來發送接口請求。通常我們應用在服務內外部接口調用場景。Guzzle實現了HTTP GET, POST,HEAD,OPTIONS,PUT, DELETE等請求方式。支持文件的上傳下載。支持JSON數據的請求響應。支持接口的同步、異步、並發請求。基本滿足了我們常用業務邏輯。
1、 Guzzle的安裝。
如果我們用PHP的依賴管理工具Composer安裝的話比較簡單。
2、 Guzzle的代碼引入。
3、 Guzzle的使用。
4、HttpGuzzle封裝類。
PHP—APP接口02
JSONXML
XML: 是一種標記語言,設計的宗旨是傳輸數據
JSON: 輕量級的數據交換格式
APP接口主要是用JSON輸出格式
APP接口輸出格式三要素:
1. code::錯誤碼
2. msg:錯誤碼對應的描述
3. data:接口返回的數據
誰有權限調用APP接口,客戶端需要帶着憑證來調用APP接口
JWT的原理:
服務端認證之後,生成一個JSON對象,返回給用戶。後續客戶端所有請求都會帶上這個JSON對象。服務端依靠這個JSON對象來認定用戶身份。
組成: Header, Payload, Signature
1. Header
說一下我是什麼
header通常包含了兩部分:類型和加密算法
{
“alg”: “HS256”,
“typ”: “JWT”
}
header需要經過Base64Url編碼後作為IWT的第一部分。
2. Payload
payload包含了claim, 三種類型reserved, public, private
reserved這些claim是JWT預先定義的,不強制使用,常用的有:
1). iss: 簽發者
2). exp: 過期的時間戳
3). sub: 面向的用戶
4). aud: 接收方
5). iat: 簽發時間
{
“sub”: “1234567890”,
“name”: “John Doe”,
“admin”: true
}
payload需要經過Base64Url編碼後作為JWT的第二部分。
3. Signature
創建簽名使用編碼後的header和payload以及一個密匙,使用header中指定的簽名算法進行簽名
HMACSHA256(
base64UrlEncode(header) + “.” +
base64UrlEncode(payload),
secret
)
簽名是在服務端進行的,客戶端並不知道,所以是安全的。
php 接口判斷客戶端後返回值的獲取
這個在服務器用file_get_contents是肯定沒用的,只能從客戶端發送請求,可以考慮在頁面尾部加一個隱藏層,然後把接口的信息寫在這個層上面,再用js去判斷一下
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/192180.html