麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > PHP > 正文

php自定義token類并將生成的token放在http請求頭的

2020-03-22 19:54:44
字體:
來源:轉載
供稿:網友

本篇文章給大家帶來的內容是關于php自定義token類并將生成的token放在http請求頭的Authorization中的代碼,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

今天在使用laravel寫東西的時候,需要與前端交互,看了jwt(json web token),于是自己想試著寫一個簡單的token類,token中存儲了成員id和成員的權限,與前端交互時,將生成的token放在http請求頭的Authorization中,整理如下:

 ?phpnamespace App/Http/Controllers/Auth;use Illuminate/Http/Request;use App/Http/Controllers/Controller;html' target='_blank'>class TokenController extends Controller{ * header * @var array private static $header = [  type = token ,  alg = HS256  ]; /** * create payload * @param $memberId * @param $permission * @return array private static function payload($memberId, $permission) return [  iss = http://api.creatshare.com ,  iat = $_SERVER[ REQUEST_TIME ],  exp = $_SERVER[ REQUEST_TIME ] + 7200,  GivenName = CreatShare ,  memberId = $memberId,  permission = $permission } /** * encode data * @param $data * @return string private static function encode($data) return base64_encode(json_encode($data)); } /** * generate a signature * @param $header * @param $payload * @param string $secret * @return string private static function signature($header, $payload, $secret = secret ) return hash_hmac( sha256 , $header.$payload, $secret); } /** * generate a token * @param $memberId * @param $permission * @return string public static function createToken($memberId, $permission) $header = self::encode(self::$header);  $payload = self::encode(self::payload($memberId, $permission));  $signature = self::signature($header, $payload);  return $header . . .$payload . . . $signature; } /** * check a token * @param $jwt * @param string $key * @return array|string public static function checkToken($jwt, $key = secret ) $token = explode( . , $jwt);  if (count($token) != 3)  return token invalid  list($header64, $payload64, $sign) = $token;  if (self::signature($header64 , $payload64) !== $sign)  return token invalid  $header = json_decode(base64_decode($header64), JSON_OBJECT_AS_ARRAY);  $payload = json_decode(base64_decode($payload64), JSON_OBJECT_AS_ARRAY);  if ($header[ type ] != token || $header[ alg ] != HS256 )  return token invalid  if ($payload[ iss ] != http://api.creatshare.com || $payload[ GivenName ] != CreatShare )  return token invalid  if (isset($payload[ exp ]) $payload[ exp ] time())  return timeout  return [  memberId = $payload[ memberId ],  permission = $payload[ permission ] } /** * get a token * @return null public static function getToken() $token = null;  if (isset($_SERVER[ HTTP_AUTHORIZATION ]))  $token = $_SERVER[ HTTP_AUTHORIZATION  return $token;}
$token = Token::createToken($member_id, $member_permission); //創建一個token$token = Token::getToken(); //從http請求頭獲取token$result = Token::checkToken(); //解析token

相關推薦:

php xml操作類(自定義)

PHP實現可自定義樣式的分頁類,php自定義樣式分頁

php中自定義類文件自動加載

以上就是php自定義token類并將生成的token放在http請求頭的Authorization中的代碼的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 免费一级毛片在线播放视频 | 欧美韩国日本在线 | 美女黄页网站免费进入 | 成人啪啪18免费网站 | 一本色道久久久888 国产一国产精品一级毛片 国产精品高潮视频 | 精品二区在线观看 | 99精品热视频 | 国产一区二区三区手机在线 | 日本看片一区二区三区高清 | 色污视频| 色猫av| 黄色羞羞视频在线观看 | japanese javhd| 特片网久久 | 一级毛片在线看 | 国产一级不卡毛片 | 成年性羞羞视频免费观看 | 国产做爰 | 久久国语对白 | 国产精品视频久久久 | 精品国产91久久久久 | 日韩美香港a一级毛片 | 国产高清美女一级毛片久久 | 黄色毛片一级视频 | 久久精品一级片 | 亚洲免费观看视频 | 黑人三级毛片 | 99影视电影电视剧在线播放 | 成人免费观看49www在线观看 | 在线成人一区二区 | 天天舔夜夜操 | 欧美毛片在线观看 | 黄色久| 精品黑人一区二区三区国语馆 | 91伊人久久 | 线观看免费完整aaa 一二区成人影院电影网 | 欧美成人精品一区二区男人小说 | 成人羞羞在线观看网站 | 免费永久在线观看黄网 | 国产成人在线观看网站 | 91色成人|