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);
 | |
| 
 | |
|     }
 | |
| } |