AbstractController.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. #[Inject]
  23. protected ContainerInterface $container;
  24. #[Inject]
  25. protected RequestInterface $request;
  26. #[Inject]
  27. protected ResponseInterface $response;
  28. #[Inject]
  29. protected JWT $jwt;
  30. protected LoggerInterface $logger;
  31. protected $UserId;
  32. protected $websiteId;
  33. public function __construct(LoggerFactory $loggerFactory)
  34. {
  35. // 第一个参数对应日志的 name, 第二个参数对应 config/autoload/logger.php 内的 key
  36. $this->logger = $loggerFactory->get('admin_consumer:', 'default');
  37. $headers = $this->request->getHeaders();
  38. // var_dump("ceshi:",$headers);
  39. if($headers && isset($headers['token']) && $headers['token'][0]!='null' && isset($headers['token'][0]) && $headers['token'][0]!=''){
  40. $userInfo = $this->jwt->getClaimsByToken($headers['token'][0]);
  41. var_dump("用户信息:",$userInfo);
  42. $this->UserId = $userInfo['uid'];
  43. $this->websiteId = $userInfo['website_id']??0;
  44. }
  45. }
  46. }