<?php

declare (strict_types=1);
/**
 * This file is part of Hyperf.
 *
 * @link     https://www.hyperf.io
 * @document https://hyperf.wiki
 * @contact  group@hyperf.io
 * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
 */
namespace App\Controller;

use Hyperf\Di\Annotation\Inject;
use Hyperf\HttpServer\Contract\RequestInterface;
use Hyperf\HttpServer\Contract\ResponseInterface;
use Phper666\JWTAuth\JWT;
use Psr\Container\ContainerInterface;
use Hyperf\Logger\LoggerFactory;
use Psr\Log\LoggerInterface;
use http\Client\Request;
abstract class AbstractController
{
    use \Hyperf\Di\Aop\ProxyTrait;
    use \Hyperf\Di\Aop\PropertyHandlerTrait;
    #[Inject]
    protected ContainerInterface $container;
    #[Inject]
    protected RequestInterface $request;
    #[Inject]
    protected ResponseInterface $response;
    #[Inject]
    protected JWT $jwt;
    protected LoggerInterface $logger;
    protected $UserId;
    public function __construct(LoggerFactory $loggerFactory)
    {
        $this->__handlePropertyHandler(__CLASS__);
        // 第一个参数对应日志的 name, 第二个参数对应 config/autoload/logger.php 内的 key
        $this->logger = $loggerFactory->get('admin_consumer:', 'default');
        $headers = $this->request->getHeaders();
        var_dump($headers['token'][0] != 'null');
        if ($headers && isset($headers['token']) && $headers['token'][0] != 'null' && isset($headers['token'][0])) {
            $userInfo = $this->jwt->getClaimsByToken($headers['token'][0]);
            $this->UserId = $userInfo['uid'];
        }
    }
}