首先在我的laravel專案中Vendor檔案夾下 引入 第三方jwt類包

以下貼一下 我的代碼簡單流程,
1):JWT加密
protected $key;
public function __construct()
{
$this->key = env('MINI_SHOP_TOKEN');
}
/**
* @return string JWT加密
*/
public function encryption()
{
$time = time();
$exp_time = time()+1800;//正式30天 測驗30分鐘
$payload = array(
"iss" => "http://www.baidu.com",
"aud" => "http://www.baidu.com",
"iat" => $time,//簽發時間
"nbf" => $time,//生效時間,在此之前是無效的
"exp" => $exp_time,//有效期
"uid" => 56
);
$token = JWT::encode($payload,$this->key);
// WxShopToken::toFirstOrCreate(['uid'=>56,'u_token'=>$token,'exp_time'=>$exp_time]);
return $token;
}
此可在登錄的時候進行JWT加密,將用戶資訊 進行加密,返還給前端人員,后端也可根據此token解密 出對應用戶資訊
2)JWT解密
public function decryption($token)
{
$token="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC93d3cudmUtbGluay5jb20iLCJhdWQiOiJodHRwOlwvXC93d3cudmUtbGluay5jb20iLCJpYXQiOjE2MDIyMjI1NTYsIm5iZiI6MTYwMjIyMjU1NiwiZXhwIjoxNjAyMjI0MzU2LCJ1aWQiOjU2fQ.4uuyCeIr-SwVjHCs-Ev5vU5vSoL0sJfJxU6a2YutJ7Q"; //此次是傳一個測驗token以供解密
$decoded = JWT::decode($token, $this->key, array('HS256'));
$decoded = (array) $decoded;
return isset($decoded['uid']) ? $decoded['uid'] : 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/168094.html
標籤:其他
上一篇:如何使用寶塔在阿里云服務器上部署自己的ssm(spring+springmvc+mybatis)專案?
下一篇:RTSP/GB28181/HIKSDK/Ehome協議視頻融合平臺EasyCVR編譯C++報參見“XXX”的宣告錯誤
