37 lines
		
	
	
		
			886 B
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			37 lines
		
	
	
		
			886 B
		
	
	
	
		
			PHP
		
	
	
|  | <?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); | ||
|  |     } | ||
|  | } |