| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- <?php
- // +----------------------------------------------------------------------
- // | EasyAdmin
- // +----------------------------------------------------------------------
- // | PHP交流群: 763822524
- // +----------------------------------------------------------------------
- // | 开源协议 https://mit-license.org
- // +----------------------------------------------------------------------
- // | github开源项目:https://github.com/zhongshaofa/EasyAdmin
- // +----------------------------------------------------------------------
- namespace app\admin\middleware;
- use app\admin\service\SystemLogService;
- use app\Request;
- use EasyAdmin\tool\CommonTool;
- use think\facade\Log;
- /**
- * 系统操作日志中间件
- * Class SystemLog
- * @package app\admin\middleware
- */
- class SystemLog
- {
- /**
- * 敏感信息字段,日志记录时需要加密
- * @var array
- */
- protected $sensitiveParams = [
- 'password',
- 'password_again',
- 'phone',
- 'mobile'
- ];
- public function handle(Request $request, \Closure $next)
- {
- $params = $request->param();
- if (isset($params['s'])) {
- unset($params['s']);
- }
- foreach ($params as $key => $val) {
- in_array($key, $this->sensitiveParams) && $params[$key] = "***********";
- }
- $method = strtolower($request->method());
- $url = $request->url();
- trace([
- 'url' => $url,
- 'method' => $method,
- 'params' => $params,
- ],
- 'requestDebugInfo'
- );
- if ($request->isAjax()) {
- if (in_array($method, ['post', 'put', 'delete'])) {
- $ip = CommonTool::getRealIp();
- $data = [
- 'admin_id' => session('admin.id'),
- 'url' => $url,
- 'method' => $method,
- 'ip' => $ip,
- 'content' => json_encode($params, JSON_UNESCAPED_UNICODE),
- 'useragent' => $_SERVER['HTTP_USER_AGENT'],
- 'create_time' => time(),
- ];
- SystemLogService::instance()->save($data);
- }
- }
- return $next($request);
- }
- }
|