34 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
| <?php
 | |
| namespace app\middleware;
 | |
| use app\exception\LogicException;
 | |
| use app\model\User;
 | |
| use app\service\CmbService;
 | |
| use app\service\util\CmbLifeUtils;
 | |
| use think\Response;
 | |
| use think\Request;
 | |
| 
 | |
| class ValidateOpenId
 | |
| {
 | |
|     public function handle(Request $request, \Closure $next): Response
 | |
|     {
 | |
|         $openId = $request->param('open_id', '');
 | |
|         if (empty($openId)) {
 | |
|             return $next($request);
 | |
|         }
 | |
| //        $openIdRes = CmbLifeUtils::decrypt($openId, config('cmb.merchant_sm2_pri_key'));
 | |
| //        $openId = $openIdRes['open_id'] ?? '';
 | |
|         $request->open_id = $openId;
 | |
|         $user = User::getUserByOpenId($openId);
 | |
|         if ($user->isEmpty()) {
 | |
|             throw new LogicException('用户不存在' . $openId);
 | |
|         }
 | |
|         $request->user_id = $user->id;
 | |
| //        $res = CmbService::checkAccessToken($user);
 | |
| //        if ($res['respCode'] == 1000) {
 | |
| //            $request->user_id = $user->id;
 | |
| //        } else {
 | |
| //            return json(['code' => 403, 'message' => '登录超时,请重新登录!', 'data' => []], 401);
 | |
| //        }
 | |
|         return $next($request);
 | |
|     }
 | |
| } |