You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
1.5 KiB

  1. <?php
  2. namespace App\Middleware\Auth;
  3. use Hyperf\HttpServer\Contract\RequestInterface as HttpRequest;
  4. use Hyperf\HttpServer\Contract\ResponseInterface as HttpResponse;
  5. use Psr\Container\ContainerInterface;
  6. use Psr\Http\Message\ResponseInterface;
  7. use Psr\Http\Message\ServerRequestInterface;
  8. use Psr\Http\Server\MiddlewareInterface;
  9. use Psr\Http\Server\RequestHandlerInterface;
  10. class UserMiddleware implements MiddlewareInterface
  11. {
  12. /**
  13. * @var ContainerInterface
  14. */
  15. protected $container;
  16. /**
  17. * @var HttpResponse
  18. */
  19. protected $response;
  20. /**
  21. * @var HttpRequest
  22. */
  23. protected $request;
  24. public function __construct(ContainerInterface $container, HttpResponse $response, HttpRequest $request)
  25. {
  26. $this->container = $container;
  27. $this->response = $response;
  28. $this->request = $request;
  29. }
  30. /**
  31. * @inheritDoc
  32. */
  33. public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
  34. {
  35. if (env('APP_ENV') == 'dev' || env('APP_ENV') == 'local') {
  36. return $handler->handle($request);
  37. }
  38. // 校验
  39. if (!$this->checkLogin()) {
  40. $content = [
  41. "status" => 'ok',
  42. "code" => 9002,
  43. "result" => [],
  44. "message" => '用户登录已失效'
  45. ];
  46. return $this->response->json($content);
  47. }
  48. return $handler->handle($request);
  49. }
  50. private function checkLogin()
  51. {
  52. return true;
  53. }
  54. }