<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                在根目錄下的app目錄中創建middleware目錄,在其下創建CheckToken.php文件 *app/middleware/CheckToken.php* ``` <?php namespace app\middleware; use thans\jwt\facade\JWTAuth; use thans\jwt\exception\JWTException; class CheckToken { public function handle($request, \Closure $next) { // OPTIONS請求直接返回 if ($request->isOptions()) { return response(); } try { JWTAuth::auth(); }catch (JWTException $e) { return json($e->getMessage()); } return $next($request); } } ``` ##### ② 起別名 給該中間件起個別名,在根目錄下的config/middleware.php文件中 ![](https://img.kancloud.cn/d3/dd/d3dd148adf46ca07def0cfdf24585bb5_1054x509.png) ##### ③ 在路由文件中使用中間件 ![](https://img.kancloud.cn/b3/b8/b3b8b346dcc46d0c3b10715bf21cebc1_956x601.png) ##### ④ 創建對應的方法 在第三步中我們創建了一個getUserInfo()方法,現在在User.php文件中創建 ``` public function getUserInfo() { return json(['id'=>1, 'name'=> '啦啦啦']); } ``` ![](https://img.kancloud.cn/91/57/9157a8f6097221713fd7065721163d3b_918x488.png) ⑤ 驗證一下 剛剛創建的token必然過期了,咱重新獲取一條 ![](https://img.kancloud.cn/d9/3a/d93a0c60992bbd3d86aa5008e2530ba8_1107x561.png) 現在驗證一下,請求userinfo方法,并在header中添加參數Authorization, 注意:token值需要加上bearer ,bearer后的空格也要的。 ![](https://img.kancloud.cn/2a/cb/2acbe76e7e49e26c5be6e7e26cfa6b58_915x508.png) 過了一分鐘后,我們再來試一試 ![](https://img.kancloud.cn/02/11/02112997f08348525d8c8bbc3bc79b13_735x457.png) 可以看到token驗證提示,該通過過期了,這個插件成功了,并沒有繼續往下走,把之前的信息返回。 (3).注銷token 這個插件在github中的文檔中沒有說到怎么注銷或刪除token,只有一個刷新refresh和拉黑invalidate,我看了一下它的代碼,刷新方法中會調用拉黑方法,看到這個注釋,讓我激動了一下,雞兒!原來拉黑就是注銷 ![](https://img.kancloud.cn/ba/44/ba443fc8798c307298bfb0237fd87079_768x313.png) 這個拉黑的具體操作就是把你要注銷的token保存在本地的cookie中,默認的保存時間是14天,14天后cookie會自己刪除的,你可以在根目錄下的runtime目錄下的cache目錄中找到對應的文件,我就不測試這個方法了,我感覺這個操作好像沒什么必要。 文件內容形似這樣 ![](https://img.kancloud.cn/ba/44/ba443fc8798c307298bfb0237fd87079_768x313.png) 至此token這節就結束了。 什么? 你想改默認的token名稱?那你可得好好研究這個插件了,看看怎么改,改完了記得踢我一腳,讓我也看看,雖然我覺得一個Authorization已經夠用了。 ![](https://img.kancloud.cn/87/f3/87f378f1d8e840fd7cc6778ec6f4fb16_1044x847.png) 現在再來回頭看看我們之前寫的檢查jwt的中間件,把返回的結果封裝一下 ![](https://img.kancloud.cn/8b/0c/8b0ce90260e976947139d6f0e95bd053_979x624.png) *app/middleware/CheckToken.php* ``` <?php namespace app\middleware; use thans\jwt\facade\JWTAuth; use thans\jwt\exception\JWTException; class CheckToken { public function handle($request, \Closure $next) { // OPTIONS請求直接返回 if ($request->isOptions()) { return response(); } try { JWTAuth::auth(); }catch (JWTException $e) { return result(null, $e->getMessage(), 401); } return $next($request); } } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看