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