JWT 生成及驗證

2021-09-26 15:11:30 字數 1596 閱讀 1938

1、composer安裝

composer require lcobucci/jwt 3.3/

2、例項化類

<?php

namespace tools\jwt;

//use 到你自己安裝的目錄,每個人的可能不同

use lcobucci\jwt\builder;

use lcobucci\jwt\parser;

use lcobucci\jwt\signer\hmac\sha256;

use lcobucci\jwt\validationdata;

/** * created by phpstorm.

* user: asus

* date: 2019/4/5

* time: 13:02

*/class token

//從請求資訊中獲取token令牌

//去除token中可能存在的bearer標識

return trim(str_ireplace($method, '', $header));

}//從token中獲取使用者id (包含token的校驗)

public static function getuserid($token = null)

$token = (new parser())->parse((string) $token);

//驗證token

$data = new validationdata();

$data->setissuer(self::$_config['issuer']);//驗證的簽發人

$data->setaudience(self::$_config['audience']);//驗證的接收人

$data->setid(self::$_config['id']);//驗證token標識

if (!$token->validate($data))

//驗證簽名

$signer = new sha256();

if (!$token->verify($signer, self::$_config['sign']))

//從token中獲取使用者id

$user_id = $token->getclaim('user_id');

}return $user_id;

}}

3、呼叫(使用之前先use這個類)

獲取token

$token = token::gettoken($res['id']);
驗證token

$token  = $this -> get['token'];

$uid = token::getuserid($token);

if($uid)

else

使用jwt生成token驗證登入狀態

在pom檔案引入jwt相關依賴 com.nimbusds groupid nimbus jose jwt artifactid 6.0 version dependency org.assertj groupid assertj core artifactid dependency 生成token字...

Python中JWT的簡單生成和驗證

json web token就是jwt的全名,用途比較廣泛的驗證資訊的方式。jwt的簡介 jwt由三部分構成,分別是頭部 header 載荷 payload 和簽名 signature 三部分由兩個.分隔。簽名 signature 是由頭部 header 和載荷 payload 經過加密演算法和秘鑰...

JWT身份驗證

jwt頭 jwt頭部分是乙個描述jwt元資料的json物件,通常如下所示。有效載荷 有效載荷部分,是jwt的主體內容部分,也是乙個json物件,包含需要傳遞的資料。jwt指定七個預設字段供選擇。iss 發行人 exp 到期時間 sub 主題 aud 使用者 nbf 在此之前不可用 iat 發布時間 ...