TokenValidExceptionHandler.php 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. declare(strict_types=1);
  3. /**
  4. * JWT token valid
  5. * @author wesmiler
  6. */
  7. namespace App\Exception\Handler;
  8. use Hyperf\Contract\StdoutLoggerInterface;
  9. use Hyperf\ExceptionHandler\ExceptionHandler;
  10. use Hyperf\HttpMessage\Stream\SwooleStream;
  11. use Psr\Http\Message\ResponseInterface;
  12. use Throwable;
  13. class TokenValidExceptionHandler extends ExceptionHandler
  14. {
  15. /**
  16. * @var StdoutLoggerInterface
  17. */
  18. protected $logger;
  19. public function __construct(StdoutLoggerInterface $logger)
  20. {
  21. $this->logger = $logger;
  22. }
  23. public function handle(Throwable $throwable, ResponseInterface $response)
  24. {
  25. $this->logger->error(sprintf('%s[%s] in %s', $throwable->getMessage(), $throwable->getLine(), $throwable->getFile()));
  26. $this->logger->error($throwable->getTraceAsString());
  27. return $response->withHeader('Server', 'Hyperf')->withStatus(500)->withBody(new SwooleStream('Internal Server Error.'));
  28. }
  29. public function isValid(Throwable $throwable): bool
  30. {
  31. return true;
  32. }
  33. }