Files
cycle_api/app/Http/Middleware/ReqRecordMiddleware.php
2023-12-17 21:29:59 +08:00

47 lines
1.4 KiB
PHP

<?php
namespace App\Http\Middleware;
use App\Const\Filter;
use App\Tools\Tools;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use Symfony\Component\HttpFoundation\Response;
class ReqRecordMiddleware
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle(Request $request, Closure $next): Response
{
//记录请求
$sReqId = \App\Tools\Tools::generateRandStr(16);
$sReqIp = $request->getClientIp();
$sReqUrl = $request->getUri();
$sReqMethod = $request->getMethod();
$sReqParams = json_encode($request->all());
$sReqTime = date('Y-m-d H:i:s');
$sReqUserAgent = $request->userAgent();
$sReqReferer = $request->headers->get('referer');
$sReqHeader = json_encode($request->headers->all());
$aData = [
'req_id'=>$sReqId,
'req_ip'=>$sReqIp,
'req_url'=>$sReqUrl,
'req_method'=>$sReqMethod,
'req_params'=>Tools::filterDataParams($sReqParams,Filter::REQ_LOG_FILTER),
'req_time'=>$sReqTime,
'req_user_agent'=>$sReqUserAgent,
'req_referer'=>$sReqReferer,
'req_header'=>$sReqHeader,
];
Log::info('req_record',$aData);
return $next($request);
}
}