37 lines
		
	
	
		
			886 B
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			37 lines
		
	
	
		
			886 B
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
| <?php
 | |
| namespace app\middleware;
 | |
| 
 | |
| use Closure;
 | |
| use app\service\Jwt as JwtService;
 | |
| 
 | |
| /**
 | |
|  * 根据TOKEN解析用户信息
 | |
|  *
 | |
|  * Class JWT
 | |
|  * @package app\middleware
 | |
|  */
 | |
| class JWT
 | |
| {
 | |
|     public function handle($request, Closure $next)
 | |
|     {
 | |
|         $authorization = $request->header('Authorization');
 | |
|         $tokenStr      = $request->param('token/s', '');
 | |
| 
 | |
|         if ($authorization) {
 | |
|             $authorization = str_replace('Bearer ', '', $authorization);
 | |
|         }
 | |
| 
 | |
|         //优先取header中token
 | |
|         $token      = $authorization ?: $tokenStr;
 | |
|         $userInfo   = [];
 | |
|         if (!empty($token)) {
 | |
|             $userInfo = JwtService::parse($token);//token中携带的简易用户信息
 | |
|         }
 | |
| 
 | |
|         $request->user          = $userInfo;
 | |
|         // authorization用于移交ApiLogin认证
 | |
|         $request->authorization = $token;
 | |
| 
 | |
|         return $next($request);
 | |
|     }
 | |
| } |