好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > ThinkPHP5框架中使用JWT的方法示例

ThinkPHP5框架中使用JWT的方法示例

熱門標簽:地圖標注符號樣式有 梧州市機器人外呼系統怎么樣 天客通地圖標注 臨沂crm外呼系統平臺 廈門400電話辦理選易號網 如何在世界地圖標注 電子地圖標注怎么修改 菏澤語音外呼系統運營商 公司外呼系統中心

本文實例講述了ThinkPHP5框架中使用JWT的方法。分享給大家供大家參考,具體如下:

JWT下載地址:https://jwt.io

可以直接去github上下載,也可以使用composer

使用composer的話要確保你的電腦上安裝了composer,進入項目根目錄下載即了,自動會放在vendor目錄下

創建文件

我是放在common目錄下

使用教程

github都有的

貼源碼

JWTAuth.php

?php
namespace app\common\Auth;
use \Lcobucci\JWT\Builder;
use \Lcobucci\JWT\Signer\Hmac\Sha256;
use \Lcobucci\JWT\Parser;
use \Lcobucci\JWT\ValidationData;
/**
 * 單例模式
 */
class JWTAuth
{
    private static $instance;
    /**
     * JWT TOKEN
     * @var [type]
     */
    private $token;
    /**
     * 頒發
     * @var string
     */
    private $iss = 'api.test.com';
    /**
     * 接收
     * @var string
     */
    private $aud = 'app.com';
 
    private $uid;
 
    private $secrect="#$%#$%*^(*(*(";
 
    private $decodeToken;
 
    public static function getInstance() {
        if(is_null(self::$instance)) {
            self::$instance = new self();
        }
        return self::$instance;
    }
 
    private function __contruct(){
 
    }
 
    private function __clone(){
 
    }
 
    public function encode(){
        $time = time();
        $this->token = (new builder())->setHeader('alg','HS256')
            ->setIssuer($this->iss)
            ->setAudience($this->aud)
            ->setIssuedAt($time) //生效時間
            ->setExpiration($time + 20)//過期時間
            ->set('uid',$this->uid)
            ->sign(new Sha256(), $this->secrect)//加密算法
            ->getToken();
 
            return $this;
    }
 
    public function getToken(){
        return (string)$this->token;
    }
 
    public function setToken($token){
        $this->token = $token;
        return $this;
    }
    /**
     * 用戶信息uid
     * @param [type] $uid [description]
     */
    public function setUid($uid){
        $this->uid = $uid;
        return $this;
    }
 
    public function jsonDecode(){
 
        $token = $this->token;
        $this->decodeToken = (new Parser())->parse((string) $token); 
 
        // echo $this->decodeToken->getClaim('uid');
        return $this->decodeToken;
    }
    /**
     * 驗證令牌是否有效
     * @return [type] [description]
     */
    public function validate(){
 
        $data = new ValidationData();
        $data->setIssuer($this->iss);
        $data->setAudience($this->aud);
        return $this->jsonDecode()->validate($data);
 
    }
    /**
     * 簽名來驗證令牌在生成后是否未被修改
     * @return [type] [description]
     */
    public function verify(){
        $result = $this->jsonDecode()->verify(new Sha256(), $this->secrect);
        return $result;
    }
 
}

user.php 用來測試

?php
namespace app\index\controller;
use app\common\Auth\JWTAuth;
 
class User{
 
    public function login(){
        
        $jwtAuth = JWTAuth::getInstance();
        $token = $jwtAuth->setUid(1)->encode()->getToken();
        echo $token;
        // var_dump(success_json_data(['token'=>$token]));
    }
 
    public function check_login(){
        $jwtAuth = JWTAuth::getInstance();
        $jwtAuth->setToken('eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJhcGkudGVzdC5jb20iLCJhdWQiOiJhcHAuY29tIiwiaWF0IjoxNTU2MDk1MDI5LCJleHAiOjE1NTYwOTUwNDksInVpZCI6MX0.oi4rLbQFNZUJsW4fVHWiOQxfEmomuvldAV-gFKl2V74');
 
        if($jwtAuth->validate()  $jwtAuth->verify()){
            echo '驗證成功';
        }else{
            echo '登錄過期';
        }
 
    }
}

最后

jwt本身的話是不帶token刷新方法,所以一旦token過期,客戶端就要重新登錄。

更多關于thinkPHP相關內容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結》、《ThinkPHP常用方法總結》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術總結》。

希望本文所述對大家基于ThinkPHP框架的PHP程序設計有所幫助。

您可能感興趣的文章:
  • 詳解Docker 下開發 hyperf 完整使用示例
  • PhpStorm 如何優雅的調試Hyperf的方法步驟
  • php框架知識點的整理和補充
  • php中Workerman框架實例講解
  • 淺談php常用的7大框架的優缺點
  • php框架CI(codeigniter)自動加載與自主創建對象操作實例分析
  • Thinkphp5框架異常處理操作實例分析
  • Thinkphp5框架中引入Markdown編輯器操作示例
  • 淺談減少Hyperf框架的掃描時間

標簽:郴州 黃石 貴陽 迪慶 雞西 瀘州 綿陽 白城

巨人網絡通訊聲明:本文標題《ThinkPHP5框架中使用JWT的方法示例》,本文關鍵詞  ThinkPHP5,框架,中,使用,JWT,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ThinkPHP5框架中使用JWT的方法示例》相關的同類信息!
  • 本頁收集關于ThinkPHP5框架中使用JWT的方法示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 人与禽交3d动漫羞羞动漫| 新视觉私人影院| HEYZO高清国产精品| 欧美乱妇无码aⅴ毛片欲仙欲 | 日韩一区二三区无| 小次郎AV收藏最新网站| 欧美精品韩国精品| yellow中文字幕最新手机| 在厨房抱住岳丰满大屁股动漫| 波罗野结衣被躁57分钟| 让人下面流水的小说| 又粗又大又爽**一级毛片| 国产精品多p对白交换绿帽| 91九色国产PORNY一区| 青草青青在线视频观看| 美女扒开尿口无遮挡免费图片| 大学生一级一片免费播放| 中文字幕av无码人妻久久抽查官| 狠狠插综合| 18岁女rapperdisssubs| 亚洲综合小视频| 亚洲欧美一区二区三区在线| 熟女人妻?人妻の视频| 精品精品国产一级毛片8| 我不是潘金莲免费观看| 台湾版天仙配三| 小雪好紧| 爱情岛AQDLT国产论坛| 男生插入女生下面的视频| 久久国产乱子伦精品免费不卡| 免费看黄的app下载| 中文字幕理伦片免费看| 国产精品色情国产电影| 亚洲欧美精品一区天堂久久| 和美国式禁忌一样裸露的电影| 欧美精品久久久久久久小说| 宫女婬春2未删减在线观看| 亲嘴亲胸揉胸膜下刺激| 国产黑人在线| 人人澡人人澡人人看青草| 总攻调教一攻多受np|