{"rsdb":{"rid":"397259","subhead":"","postdate":"0","aid":"273494","fid":"85","uid":"1","topic":"1","content":"
\n

JWT\u5b98\u7f51<\/p> \n

https:\/\/jwt.io\/ <\/p> \n

\"\"<\/p> \n

 \u9009\u62e9\u7b2c\u4e00\u4e2a<\/p> \n

composer require firebase\/php-jwt<\/p> \n

use Firebase\\JWT\\ExpiredException;
use Firebase\\JWT\\JWT;
use Firebase\\JWT\\Key;
use Firebase\\JWT\\SignatureInvalidException;<\/pre> \n
public function createToken()
{
$jwtContent = [
\/\/ \u7b7e\u53d1\u4eba\uff0c\u8fd9\u91cc\u91c7\u7528\u5f53\u524d\u7ad9\u70b9\u57df\u540d
'iss' => 'myName',
\/\/ \u7b7e\u53d1\u65f6\u95f4\uff0c\u5f53\u524d\u65f6\u95f4\u6233
'iat' => time(),
\/\/ \u5230\u671f\u65f6\u95f4\uff0c1\u5929\u540e
'exp' => time() + 86400,
\/\/ \u81ea\u5b9a\u4e49\u6570\u636e
'data' => [
'user_id' => 1,
'user_name' => 'jack'
]
];
\/\/ \u81ea\u5b9a\u4e49 key\uff0c\u7528\u4e8e\u52a0\u5bc6 token\uff0c\u53ea\u4fdd\u5b58\u5728\u670d\u52a1\u7aef\uff0c\u4e0d\u53ef\u6cc4\u6f0f\u3002
\/\/ api\u3001admin\u7aef\u53ef\u4ee5\u8bbe\u7f6e\u4e24\u4e2a\u4e0d\u540c\u7684
$key = 'iwsojfiowejgiroegnioamr';
\/\/ \u4f7f\u7528 HS256 \u7b97\u6cd5\uff0c\u751f\u6210 token \u3002
$token = JWT::encode($jwtContent, $key, 'HS256');
\/\/ \u6253\u5370\u8f93\u51fa
echo($token);
}

<\/pre> \n
public function checkToken()
{
try {
\/\/ \u6b64 key \u5fc5\u987b\u548c\u751f\u6210 token \u65f6\u7684\u4e00\u81f4\u3002
$key = 'iwsojfiowejgiroegnioamr';
\/\/ \u63a5\u6536\u5ba2\u6237\u7aef\u63d0\u4ea4\u7684 token \u3002
$token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJteU5hbWUiLCJpYXQiOjE2OTQ1MzI5NjYsImV4cCI6MTY5NDUzMjk4NiwiZGF0YSI6eyJ1c2VyX2lkIjoxLCJ1c2VyX25hbWUiOiJqYWNrIn19.p4Ri4jEv5iEM0vMEcmYh5Ipzwqh7iGJKYVDAetPHVIs';
$test = JWT::decode($token, new Key($key, 'HS256'));
dump($test);
dump($test->data->user_id);
} catch (SignatureInvalidException $signatureInvalidException) {
\/\/ \u83b7\u53d6\u9a8c\u8bc1\u5931\u8d25\u65f6\u629b\u51fa\u7684\u9519\u8bef\u4fe1\u606f
\/\/dump($signatureInvalidException->getMessage());
dump('token\u9519\u8bef');
} catch (ExpiredException $expiredException) {
\/\/ \u83b7\u53d6 token \u8fc7\u671f\u65f6\u629b\u51fa\u7684\u9519\u8bef\u4fe1\u606f
\/\/dump($expiredException->getMessage());
dump('token\u8fc7\u671f');
} catch (\\Exception $exception) {
\/\/ \u83b7\u53d6\u629b\u51fa\u7684\u5176\u5b83\u9519\u8bef\u4fe1\u606f
\/\/dump($exception->getMessage());
dump('token\u9519\u8bef');
}
}<\/pre> \n

\"\"<\/p> \n

 <\/p> \n

\"\"<\/p> \n

 \u5047\u8bbetoken\u8fc7\u671f\u65f6\u95f4\u4e3a3\u5929\uff0c\u5982\u679c\u7528\u6237\u8fde\u7eed\u4f7f\u75282\u5929\uff0c\u5230\u4e86\u7b2c\u4e09\u5929\u60f3\u4e0d\u7528\u91cd\u65b0\u767b\u5f55\uff0c\u53ef\u4ee5\u5ef6\u957f\u8fc7\u671f\u65f6\u95f4<\/p> \n

\u65b9\u6848\u4e00\uff1a\u767b\u5f55\u65f6\uff0c\u628a\u8fc7\u671f\u65f6\u95f4\u8fd4\u56de\u7ed9\u524d\u7aef\uff0c\u8ba9\u524d\u7aef\u5728\u8fc7\u671f\u524d\u91cd\u65b0\u83b7\u53d6\u65b0token<\/p> \n

 <\/p> \n<\/div>","orderid":"0","title":"php\u4f7f\u7528jwt\u4f5c\u767b\u5f55\u9a8c\u8bc1","smalltitle":"","mid":"0","fname":"PHP","special_id":"0","bak_id":"0","info":"0","hits":"281","pages":"1","comments":"0","posttime":"2023-09-23 15:43:46","list":"1695455026","username":"admin","author":"","copyfrom":"","copyfromurl":"","titlecolor":"","fonttype":"0","titleicon":"0","picurl":"https:\/\/www.cppentry.com\/upload_files\/","ispic":"0","yz":"1","yzer":"","yztime":"0","levels":"0","levelstime":"0","keywords":"php<\/A> \u4f7f\u7528<\/A> jwt<\/A>","jumpurl":"","iframeurl":"","style":"","template":"a:3:{s:4:\"head\";s:0:\"\";s:4:\"foot\";s:0:\"\";s:8:\"bencandy\";s:0:\"\";}","target":"0","ip":"112.94.1.100","lastfid":"0","money":"0","buyuser":"","passwd":"","allowdown":"","allowview":"","editer":"","edittime":"0","begintime":"0","endtime":"0","description":"php\u4f7f\u7528jwt\u4f5c\u767b\u5f55\u9a8c\u8bc1","lastview":"1716082009","digg_num":"0","digg_time":"0","forbidcomment":"0","ifvote":"0","heart":"","htmlname":"","city_id":"0"},"page":"1"}