PublicMiddleware.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Middleware\Auth;
  4. use Hyperf\Di\Annotation\Inject;
  5. use Hyperf\HttpServer\Contract\RequestInterface;
  6. use Hyperf\HttpServer\Contract\ResponseInterface as HttpResponse;
  7. use Psr\Container\ContainerInterface;
  8. use Psr\Http\Message\ResponseInterface;
  9. use Psr\Http\Message\ServerRequestInterface;
  10. use Psr\Http\Server\MiddlewareInterface;
  11. use Psr\Http\Server\RequestHandlerInterface;
  12. use Hyperf\Context\Context;
  13. use App\JsonRpc\WebsiteServiceInterface;
  14. use Phper666\JWTAuth\JWT;
  15. class PublicMiddleware implements MiddlewareInterface
  16. {
  17. protected ContainerInterface $container;
  18. protected RequestInterface $request;
  19. protected HttpResponse $response;
  20. protected JWT $JWT;
  21. /**
  22. * @var WebsiteServiceInterface
  23. */
  24. #[Inject]
  25. private $websiteServiceClient;
  26. public function __construct(ContainerInterface $container, HttpResponse $response, RequestInterface $request,Jwt $JWT)
  27. {
  28. $this->container = $container;
  29. $this->response = $response;
  30. $this->request = $request;
  31. $this->JWT = $JWT;
  32. }
  33. public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
  34. {
  35. // var_dump("fuck:",$request->all());
  36. $header = $request->getHeaders();
  37. try {
  38. if($header && isset($header['userurl']) && $header['userurl'][0]!='null' && isset($header['userurl'][0])){
  39. $origin = $header['userurl'][0];
  40. $data = [
  41. 'website_url'=>$origin
  42. ];
  43. $result = $this->websiteServiceClient->getWebsiteId($data);
  44. var_dump($result);
  45. if(!isset($result['data']['id']) || !$result['data']['id']){
  46. return $this->response->json(
  47. [
  48. 'code' => -1,
  49. 'data' => [],
  50. 'message' => '网站不存在...',
  51. ]
  52. );
  53. }
  54. // var_dump($result['data']);
  55. // var_dump("获取站点id:",$result);
  56. Context::set("SiteId",$result['data']['id']);
  57. if($result['data']['id']==1){
  58. Context::set("SiteId",0);
  59. }
  60. if ($result) {
  61. return $handler->handle($request);
  62. }
  63. }else{
  64. return $this->response->json(
  65. [
  66. 'code' => -1,
  67. 'data' => [],
  68. 'message' => 'userurl:必填',
  69. ]
  70. );
  71. }
  72. }catch (\Exception $e){
  73. // var_dump("错误消息:",$e->getMessage(),$e->getCode());
  74. return $this->response->json(
  75. [
  76. 'code' => $e->getCode(),
  77. 'data' => [],
  78. 'message' => 'userurl必填:'.$e->getMessage(),
  79. ]
  80. );
  81. }
  82. return false;
  83. }
  84. }