App_Controller_AbstractController.proxy.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. declare (strict_types=1);
  3. /**
  4. * This file is part of Hyperf.
  5. *
  6. * @link https://www.hyperf.io
  7. * @document https://hyperf.wiki
  8. * @contact group@hyperf.io
  9. * @license https://github.com/hyperf/hyperf/blob/master/LICENSE
  10. */
  11. namespace App\Controller;
  12. use Hyperf\Di\Annotation\Inject;
  13. use Hyperf\HttpServer\Contract\RequestInterface;
  14. use Hyperf\HttpServer\Contract\ResponseInterface;
  15. use Phper666\JWTAuth\JWT;
  16. use Psr\Container\ContainerInterface;
  17. use Hyperf\Logger\LoggerFactory;
  18. use Psr\Log\LoggerInterface;
  19. use http\Client\Request;
  20. abstract class AbstractController
  21. {
  22. use \Hyperf\Di\Aop\ProxyTrait;
  23. use \Hyperf\Di\Aop\PropertyHandlerTrait;
  24. #[Inject]
  25. protected ContainerInterface $container;
  26. #[Inject]
  27. protected RequestInterface $request;
  28. #[Inject]
  29. protected ResponseInterface $response;
  30. #[Inject]
  31. protected JWT $jwt;
  32. protected LoggerInterface $logger;
  33. protected $UserId;
  34. public function __construct(LoggerFactory $loggerFactory)
  35. {
  36. $this->__handlePropertyHandler(__CLASS__);
  37. // 第一个参数对应日志的 name, 第二个参数对应 config/autoload/logger.php 内的 key
  38. $this->logger = $loggerFactory->get('admin_consumer:', 'default');
  39. $a = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwaHBlcjY2Ni9qd3QiLCJ1aWQiOjEsInVzZXJuYW1lIjoieHgiLCJqd3Rfc2NlbmUiOiJkZWZhdWx0IiwianRpIjoiZGVmYXVsdF82NjYyYTg5NTQ5MTk2MS40NTgzOTUyNCIsImlhdCI6MTcxNzc0MTcxNywibmJmIjoxNzE3NzQxNzE3LCJleHAiOjE3MTc3NDg5MTd9.cTqoaSn5P3mW8__O2O2rv2dxiGtfSZk-E8fisjHFwCg';
  40. $headers = $this->request->getHeaders();
  41. if ($headers && $headers['token'][0]) {
  42. $userInfo = $this->jwt->getClaimsByToken($headers['token'][0]);
  43. $this->UserId = $userInfo['uid'];
  44. }
  45. }
  46. }