App_Controller_AbstractController.proxy.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. protected $websiteId;
  35. public function __construct(LoggerFactory $loggerFactory)
  36. {
  37. $this->__handlePropertyHandler(__CLASS__);
  38. // 第一个参数对应日志的 name, 第二个参数对应 config/autoload/logger.php 内的 key
  39. $this->logger = $loggerFactory->get('admin_consumer:', 'default');
  40. $headers = $this->request->getHeaders();
  41. if ($headers && isset($headers['token']) && $headers['token'][0] != 'null' && isset($headers['token'][0])) {
  42. $userInfo = $this->jwt->getClaimsByToken($headers['token'][0]);
  43. // var_dump("用户信息:",$userInfo,$headers);
  44. $this->UserId = $userInfo['uid'];
  45. $this->websiteId = $userInfo['website_id'] ?? 0;
  46. }
  47. }
  48. }