FooMiddleware.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Middleware\Auth;
  4. use Hyperf\HttpServer\Contract\RequestInterface;
  5. use Hyperf\HttpServer\Contract\ResponseInterface as HttpResponse;
  6. use Psr\Container\ContainerInterface;
  7. use Psr\Http\Message\ResponseInterface;
  8. use Psr\Http\Message\ServerRequestInterface;
  9. use Psr\Http\Server\MiddlewareInterface;
  10. use Psr\Http\Server\RequestHandlerInterface;
  11. use Phper666\JWTAuth\JWT;
  12. class FooMiddleware implements MiddlewareInterface
  13. {
  14. protected ContainerInterface $container;
  15. protected RequestInterface $request;
  16. protected HttpResponse $response;
  17. protected JWT $JWT;
  18. public function __construct(ContainerInterface $container, HttpResponse $response, RequestInterface $request,Jwt $JWT)
  19. {
  20. $this->container = $container;
  21. $this->response = $response;
  22. $this->request = $request;
  23. $this->JWT = $JWT;
  24. }
  25. public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
  26. {
  27. $header = $request->getHeaders();
  28. if($this->request->getUri()->getPath()=="/api/login"){
  29. return $handler->handle($request);
  30. }
  31. try {
  32. if($header && isset($header['token']) && $header['token'][0]!='null' && isset($header['token'][0])){
  33. $ver = $this->JWT->getClaimsByToken($header['token'][0]);
  34. if ($ver) {
  35. return $handler->handle($request);
  36. }
  37. }else{
  38. return $this->response->json(
  39. [
  40. 'code' => -1,
  41. 'data' => [],
  42. 'message' => 'token无效,请重新登录',
  43. ]
  44. );
  45. }
  46. }catch (\Exception $e){
  47. var_dump("错误消息:",$e->getMessage(),$e->getCode(),"====%====",$e->getCode());
  48. }
  49. return $this->response->json(
  50. [
  51. 'code' => 1,
  52. 'data' => [],
  53. 'message' => 'token无效,请重新登录',
  54. ]
  55. );
  56. }
  57. }