composer下有個包,可以用來實現jwt,我們重新包裝下拿來用。
1、安裝composer包
composer require firebase/php-jwt
2、編寫乙個jwtservice的類
<?php
use firebase\jwt\jwt;
class jwtservice
public function gettoken($data)
/*** 校驗jwt許可權api
}}
3、測試,一般jwt使用分兩步走,
一步是簽名下發到客戶端,login.php
<?php
require './vendor/autoload.php';
require './jwtservice.php';
//使用者傳送賬號密碼過來,驗證過後,就簽發秘鑰
$jwt = new jwtservice();
$uid = 1;
$data = ['uid' => $uid];
$res = $jwt->gettoken($data);
echo json_encode(['token' => $res, 'status' => 0]);
另外一步就是客戶端拿到了簽名資料,下次請求就帶著這個簽名資料過來伺服器端,伺服器端得到後,就開始驗籤。index.php
<?php
require './vendor/autoload.php';
require './jwtservice.php';
$jwt = new jwtservice();
$res = $jwt->checktoken();
if (is_array($res)) else
jwt相較於session,各自有自己的特點,開發的時候,應該根據實際的場景使用不同的機制來驗證客戶端的身份。
jwt的缺點,下發的簽名一旦給了客戶端,除了過期,就無法主動剔除,需要自己在**邏輯重新處理。
還有就是為了避免簽名被盜,強烈建議使用https,都什麼時代了,還是用http,網路安全不可忽視啊。
PHP使用JWT實現介面令牌驗證
jwt封裝控制器namespace api user controller use cmf controller restbasecontroller use firebase jwt jwt jwt整合包 use think cache use think model class jwt clas...
php生成簽名及驗證簽名
php生成簽名及驗證簽名 余超 yuchao86 gmail.com 啥也不說了,直接上源 根據原文生成簽名內容 param string data 原文內容 return string author confu function sign data pkcs12 file get contents...
php生成簽名及驗證簽名
根據原文生成簽名內容 param string data 原文內容 return string author confu function sign data pkcs12 file get contents filepath if openssl pkcs12 read pkcs12,certs,...