|
@@ -0,0 +1,95 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+declare(strict_types=1);
|
|
|
+
|
|
|
+namespace App\Middleware\Auth;
|
|
|
+
|
|
|
+use Hyperf\Di\Annotation\Inject;
|
|
|
+use Hyperf\HttpServer\Contract\RequestInterface;
|
|
|
+use Hyperf\HttpServer\Contract\ResponseInterface as HttpResponse;
|
|
|
+use Psr\Container\ContainerInterface;
|
|
|
+use Psr\Http\Message\ResponseInterface;
|
|
|
+use Psr\Http\Message\ServerRequestInterface;
|
|
|
+use Psr\Http\Server\MiddlewareInterface;
|
|
|
+use Psr\Http\Server\RequestHandlerInterface;
|
|
|
+use Hyperf\Context\Context;
|
|
|
+use App\JsonRpc\WebsiteServiceInterface;
|
|
|
+use Phper666\JWTAuth\JWT;
|
|
|
+class PublicMiddleware implements MiddlewareInterface
|
|
|
+{
|
|
|
+ protected ContainerInterface $container;
|
|
|
+
|
|
|
+ protected RequestInterface $request;
|
|
|
+
|
|
|
+ protected HttpResponse $response;
|
|
|
+ protected JWT $JWT;
|
|
|
+ /**
|
|
|
+ * @var WebsiteServiceInterface
|
|
|
+ */
|
|
|
+ #[Inject]
|
|
|
+ private $websiteServiceClient;
|
|
|
+ public function __construct(ContainerInterface $container, HttpResponse $response, RequestInterface $request,Jwt $JWT)
|
|
|
+ {
|
|
|
+ $this->container = $container;
|
|
|
+ $this->response = $response;
|
|
|
+ $this->request = $request;
|
|
|
+ $this->JWT = $JWT;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
|
|
+ {
|
|
|
+
|
|
|
+ $header = $request->getHeaders();
|
|
|
+ try {
|
|
|
+
|
|
|
+ if($header && isset($header['userurl']) && $header['userurl'][0]!='null' && isset($header['userurl'][0])){
|
|
|
+ $origin = $header['userurl'][0];
|
|
|
+ $data = [
|
|
|
+ 'website_url'=>$origin
|
|
|
+ ];
|
|
|
+
|
|
|
+ $result = $this->websiteServiceClient->getWebsiteId($data);
|
|
|
+ if(!isset($result['data']['id']) || !$result['data']['id']){
|
|
|
+ return $this->response->json(
|
|
|
+ [
|
|
|
+ 'code' => -1,
|
|
|
+ 'data' => [],
|
|
|
+
|
|
|
+ 'message' => '网站不存在...',
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ }
|
|
|
+// var_dump($result['data']);
|
|
|
+ // var_dump("获取站点id:",$result);
|
|
|
+ Context::set("SiteId",$result['data']['id']);
|
|
|
+ if($result['data']['id']==1){
|
|
|
+ Context::set("SiteId",0);
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($result) {
|
|
|
+ return $handler->handle($request);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ return $this->response->json(
|
|
|
+ [
|
|
|
+ 'code' => -1,
|
|
|
+ 'data' => [],
|
|
|
+ 'message' => 'userurl:必填',
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ }catch (\Exception $e){
|
|
|
+// var_dump("错误消息:",$e->getMessage(),$e->getCode());
|
|
|
+ return $this->response->json(
|
|
|
+ [
|
|
|
+ 'code' => $e->getCode(),
|
|
|
+ 'data' => [],
|
|
|
+ 'message' => 'userurl必填:'.$e->getMessage(),
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+}
|