ad組成的字符串進行簽名后得到的字符串。我們可以通過將Header和Payload進行Base64編碼后再附加上一個密鑰進行簽名來生成Signature。
對于密鑰,我們可以從配置文件中讀取,也可以手動設置。
“`
$secret_key = ‘your_secret_key’;
$header_encoded = base64_encode(json_encode($header));
$payload_encoded = base64_encode(json_encode($payload));
$signature = hash_hmac(‘sha256’, $header_encoded . ‘.’ . $payload_encoded, $secret_key, true);
$signature_encoded = base64_encode($signature);
“`
4.創(chuàng)建Token
將Header、Payload和Signature拼接成一個字符串,即可成為一個完整的Token。
“`
$token = $header_encoded . ‘.’ . $payload_encoded . ‘.’ . $signature_encoded;
“`
Phptoken的使用
在接口請求時,客戶端需要在請求頭中傳遞Token,服務端在接收到Token后需要驗證Token的簽名和有效期等信息。
我們可以通過以下代碼來解析Token:
“`
$token = ‘your_token’;
$token_parts = explode(‘.’, $token);
$header = json_decode(base64_decode($token_parts[0]), true);
$payload = json_decode(base64_decode($token_parts[1]), true);
$signature = base64_decode($token_parts[2]);
$secret_key = ‘your_secret_key’;
$computed_signature = hAPPash_hmac(‘sha256’, $token_parts[0] . ‘.’ . $token_parts[1], $secret_key, true);
if (hash_equals($signature, $computed_signature)) {
// 驗證通過
} else {
// 驗證失敗
}
“`
Phptoken是一種很好用的Token生成方法,它基于JWT標準并結合了PHP的特點,可以輕松地完成Token的生成和驗證,并提高了程序的安全性。