34 lines
		
	
	
		
			849 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			849 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace app\api\middleware;
 | |
| 
 | |
| use Closure;
 | |
| use think\Request;
 | |
| use think\Response;
 | |
| 
 | |
| class Auth
 | |
| {
 | |
|     protected $noNeedLogin = [
 | |
|         'BusinessInfo' => ['product_info'], 
 | |
|     ];
 | |
| 
 | |
|     public function handle(Request $request, Closure $next): Response
 | |
|     {
 | |
|         // 获取当前请求的控制器和方法
 | |
|         $controller = $request->controller();
 | |
|         $action = $request->action();
 | |
| 
 | |
|         // 判断当前请求是否在 noNeedLogin 列表中
 | |
|         if (isset($this->noNeedLogin[$controller]) && in_array($action, $this->noNeedLogin[$controller])) {
 | |
|             return $next($request);
 | |
|         }
 | |
| 
 | |
|         // 执行登录验证逻辑
 | |
|         if (!session('?user_id')) {
 | |
|             // 未登录,返回错误或重定向到登录页面
 | |
|             return redirect('login/index');
 | |
|         }
 | |
| 
 | |
|         return $next($request);
 | |
|     }
 | |
| } |