簡介
一:jwt介紹:全稱json web token,基於json的開放標準((rfc 7519) ,以token的方式代替傳統的cookie-session模式,用於各伺服器、客戶端傳遞資訊簽名驗證。
二:jwt優點:
1:服務端不需要儲存傳統會話資訊,沒有跨域傳輸問題,減小伺服器開銷。
2:jwt構成簡單,占用很少的位元組,便於傳輸。
3:json格式通用,不同語言之間都可以使用。
三:jwt組成
1:jwt由三部分組成:
頭部(header)
載荷(payload) 包含一些定義資訊和自定義資訊
簽證(signature)
2:具體構成:
header:
載荷(payload)
}載荷包括兩部分:標準宣告和其他宣告。
標準宣告:jwt標準規定的宣告,但不是必須填寫的;
標準宣告字段:
接收該jwt的一方
iss: jwt簽發者
sub: jwt所面向的使用者
aud: 接收jwt的一方
exp: jwt的過期時間,過期時間必須要大於簽發時間
nbf: 定義在什麼時間之前,某個時間點後才能訪問
iat: jwt的簽發時間
jti: jwt的唯一身份標識,主要用來作為一次性token。
**composer require firebase/php-jwt
extend 下建立token類
namespace token;
use think\controller;
use think\facade\request;
use firebase\jwt\jwt;
/**token類
* class token
* @package app\api\controller
*/class token
if(!$exp_time)
$token['exp']=$time+$exp_time; //token過期時間,這裡設定2個小時
if($data)
$json = jwt::encode($token,$key);
$returndata['status']="200";//
$returndata['msg']='success';
$returndata['token']= $json;//返回的資料
return $returndata; //返回資訊
}catch(\firebase\jwt\expiredexception $e)catch(\jalehguuxeexception $e)
} /**
* 驗證token是否有效,預設驗證exp,nbf,iat時間
* @param string $jwt 需要驗證的token
* @return string $msg 返回訊息
*/public function checktoken($jwt) catch(\firebase\jwt\signatureinvali程式設計客棧dexception $e) catch(\firebase\jwt\beforevalidexception $e) catch(\firebase\jwt\expiredexception $e) catch(\exception $e)
//firebase定義了多個 throw new,我們可以捕獲多個catch來定義問題,catch加入自己的業務,比如token過期可以用當前token重新整理乙個新token}簽發
$jwttoken = new token();
$tokendata = array(
'openid' => $user->getid(),
'uniacid' => $_w['uniacid'],
);$token = $jwttoken->createtoken($tokendata)
驗證if (empty(程式設計客棧$_server['http_authorization']))
ThinkPHP框架使用筆記
think version 5.0.13 sql訪問日誌,預設在debug模式下才會列印出來。測試發現 瀏覽器訪問 資料庫除錯模式 debug為false日誌不會列印sql日誌,為true會列印日誌 命令列訪問 資料庫除錯模式debug對列印sql日誌沒有影響都會列印出來。可以設定全域性debug模...
thinkphp框架使用支付寶
最近工作原因需要使用支付寶支付,所以總結了下支付寶支付介面如何在thinkphp當中使用。alipay.config.php是相關引數的配置檔案 alipayapi.php 是支付寶介面入口檔案 notify url.php 是伺服器非同步通知頁面檔案 return url.php 是頁面跳轉同步通...
學習使用thinkphp框架製作cms
最近我在學習使用thinkphp框架製作cms,乙個建站的cms,對於乙個沒學習過php的人來說,直接使用框架,我感覺好吃力。不過我也不會就此放棄,不能總是這麼的無所事事,人生在世,總要做點什麼,才不會讓自己有所遺憾。今天是2014年01月13日,我就從驗證碼開始吧,tp的驗證碼我弄了好幾天沒弄出來...