Files
ProxyPanel/app/Http/Middleware/WebApi.php
兔姬桑 bc44fd9770 Client Api Alpha Release & Code Splitting
- 代码拆分,为客户端API,前后端分离做准备
- Client Api 对接 Alpha Release
- 规范WebApi格式

Update client.php
2024-06-27 22:17:50 +08:00

42 lines
996 B
PHP

<?php
namespace App\Http\Middleware;
use App\Helpers\ResponseEnum;
use App\Helpers\WebApiResponse;
use Closure;
class WebApi
{
/**
* Handle an incoming request.
*
* @param $request
* @param Closure $next
* @return mixed
*/
use WebApiResponse;
public function handle($request, Closure $next)
{
$node = $request->node;
$key = $request->header('key');
$time = $request->header('timestamp');
if (! isset($key)) { // 未提供 key
return $this->failed([400200, 'Your key is null!']);
}
$nodeAuth = $node->auth ?? null;
if (! isset($nodeAuth) || $key !== $nodeAuth->key) { // key不存在/不匹配
return $this->failed(ResponseEnum::CLIENT_PARAMETER_ERROR);
}
if (abs($time - time()) >= 300) { // 时差超过5分钟
return $this->failed(ResponseEnum::CLIENT_HTTP_UNSYNCHRONIZE_TIMER);
}
return $next($request);
}
}