46 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			46 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | 
 | ||
|  | namespace app\middleware; | ||
|  | 
 | ||
|  | use app\model\User; | ||
|  | use app\model\WeixinAccountMini; | ||
|  | use Closure; | ||
|  | 
 | ||
|  | class Token | ||
|  | { | ||
|  |     public function handle($request, Closure $next) | ||
|  |     { | ||
|  |         $result = [ | ||
|  |             'code' => -1, | ||
|  |             'msg' => "未登录或登录过期", | ||
|  |             'time' => time(), | ||
|  |         ]; | ||
|  |         $allHeader = request()->header(); | ||
|  |         $token = isset($allHeader["token"]) ? $allHeader["token"] : ""; | ||
|  |         $userId = isset($allHeader["userid"]) ? (int)$allHeader["userid"] : 0; | ||
|  |         $wechatToken = isset($allHeader["wechattoken"]) ? $allHeader["wechattoken"] : ""; | ||
|  |         $openid = isset($allHeader["openid"]) ? $allHeader["openid"] : ""; | ||
|  |         //先验证是否有小程序登录信息
 | ||
|  |         if ($wechatToken != "" && $openid != "") { | ||
|  |             $wechatUserId = WeixinAccountMini::userTokenVerification($wechatToken, $openid); | ||
|  |             //微信小程序登录过期或未登录
 | ||
|  |             if ($wechatUserId <= 0) { | ||
|  |                 $result["msg"] = "小程序登录已过期或未登录"; | ||
|  |                 return json($result); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         //验证平台账号是否登录
 | ||
|  |         if ($token != "" || $userId > 0) { | ||
|  |             $IndexUserId = User::userTokenVerification($token, $userId); | ||
|  |             if ($IndexUserId <= 0) { | ||
|  |                 $result["msg"] = "原账号登录已过期或未登录" /*. $token . "_" . $userId*/ | ||
|  |                 ; | ||
|  |                 return json($result); | ||
|  |             } | ||
|  |             return $next($request); | ||
|  |         } | ||
|  |         return json($result); | ||
|  | 
 | ||
|  |     } | ||
|  | } |