老莫的笔记本  
  
查看: 1039|回复: 0

关于 laravel 中间件 不继续走的问题

[复制链接]

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
发表于 2019-11-11 17:37:20 | 显示全部楼层 |阅读模式
写白话个 基本的路由造型:
  1. Route::middleware(['jwt_auth'])->group(function () {
  2.    
  3.     Route::get('user/userslist', 'UserController@userslist');

  4.     Route::Post('user/adduser', 'UserController@adduser');

  5.     Route::Post('user/deluser/{id}', 'UserController@deluser');

  6.     Route::Post('user/deluser/{id}', 'UserController@deluser');

  7. });
复制代码


然后再白话个 基本的 中间件的写法

  1. <?php

  2. namespace App\Http\Middleware;

  3. use Closure;

  4. // use Illuminate\Http\Request;

  5. // 使用jwt
  6. use App\Http\Controllers\Jwt;

  7. class JwtAuth
  8. {
  9.     /**
  10.      * Handle an incoming request.
  11.      *
  12.      * @param  \Illuminate\Http\Request $request
  13.      * @param  \Closure $next
  14.      * @return mixed
  15.      */
  16.     public function handle($request, Closure $next)
  17.     {
  18.         //中间件中不能用json_encode
  19.         $token = $request->headers->get("token");

  20.         if(empty($token)){

  21.             downjson(161,'请登录');

  22.         }
  23.         if ($token) {
  24.             $key = 'JWTKEY1'; //key要和签发的时候一样  

  25.             $Jwt = new Jwt($key);

  26.             $check = $Jwt->decode($token);

  27.             if (!$check) {
  28.                 downjson(161,'登录信息有误或超时请重新登录');
  29.             } else {   
  30.                  $request->useinfo = json_decode( json_encode($check) ) ;  
  31.                  
  32.             }
  33.         }
  34.         // dd($request);
  35.         return $next($request);
  36.     }
  37. }
复制代码
注意了这句话 : return $next($request) ;  只有写上这句话 才能继续。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表