jwt 生成token方法

2021-09-19 12:52:44 字數 1921 閱讀 7335

<?php

/** * @author: marte

* @date: 2019-04-23 10:37:03

* @last modified by: marte

* @last modified time: 2019-04-23 10:58:23

*/// 單例 一次請求中所有出現使用jwt的地方都是乙個使用者

class jwtelse

}/**

* 驗證token是否有效,預設驗證exp,nbf,iat時間

* @param string $token 需要驗證的token

* @return bool|string

*/public static function verifytoken($token)

/*** base64urlencode 中base64urlencode編碼實現

* @param string $input 需要編碼的字串

* @return string

*/private static function base64urlencode($input)

/*** base64urlencode 中base64urlencode解碼實現

* @param string $input 需要解碼的字串

* @return bool|string

*/private static function base64urldecode($input)

return base64_decode(strtr($input, '-_', '+/'));

}/**

* hmacsha256簽名 中hmacsha256簽名實現

* @param string $input 為base64urlencode(header).".".base64urlencode(payload)

* @param string $key

* @param string $alg 演算法方式

* @return mixed

*/private static function signature($input, $key, $alg = 'hs256')

} //測試和官網是否匹配begin

$payload=array('sub'=>'1234567890','name'=>'john doe','iat'=>1516239022);

$jwt=new jwt;

$token=$jwt->gettoken($payload);

echo "";

echo $token;

//對token進行驗證簽名

$getpayload=$jwt->verifytoken($token);

echo "

"; var_dump($getpayload);

echo "

"; //測試和官網是否匹配end

//自己使用測試begin

$payload_test=array('iss'=>'admin','iat'=>time(),'exp'=>time()+7200,'nbf'=>time(),'sub'=>'www.admin.com','jti'=>md5(uniqid('jwt').time()));;

$token_test=jwt::gettoken($payload_test);

echo "";

echo $token_test;

//對token進行驗證簽名

$getpayload_test=jwt::verifytoken($token_test);

echo "

"; var_dump($getpayload_test);

echo "

"; //自己使用時候end

開發記錄 基於JWT生成token

token用於驗證使用者登入,傳統的基於cookie的session認證已經滿足不了需求了。伺服器端可以設定token的生成規則以及有效時間,每當進行登入判斷的時候,伺服器就檢視這個token是不是按照伺服器約定的生成規則生成的token,以此來校驗使用者登入。1 支援跨域訪問,將token置於請求...

JWT功能開發 後端生成token

安裝 jsonwebtoken npm i s jsonwebtoken使用 const jwt require jsonwebtoken const require utils constant login username,password then user else private key,...

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

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