Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- declare(strict_types = 1);
- namespace App\InterServices\ActiveUser;
- use App\InterServices\ActiveUser\Exceptions\NoAuthorizationHeader;
- use Psr\Http\Message\ResponseInterface;
- use Psr\Http\Message\ServerRequestInterface;
- use Psr\Http\Server\MiddlewareInterface;
- use Psr\Http\Server\RequestHandlerInterface;
- use Psr\Log\LoggerAwareInterface;
- use Psr\Log\LoggerAwareTrait;
- use Zend\Diactoros\Response\JsonResponse;
- /**
- * Middleware передает токен авторизации текущего запроса в ActiveUser
- */
- class ActiveUserMiddleware implements MiddlewareInterface, LoggerAwareInterface
- {
- use LoggerAwareTrait;
- /**
- * Название заголовка
- *
- * @var string
- */
- const AUTHORIZATION = 'Authorization';
- /**
- * Активный пользователь как сервис
- *
- * @var HubUserService
- */
- protected $hubUserService;
- /**
- * @var ActiveUser
- */
- protected $activeUser;
- /**
- * Конструктор класса
- *
- * @param ActiveUser $hubUserService
- */
- public function __construct(ActiveUser $activeUser, HubUserService $hubUserService)
- {
- $this->hubUserService = $hubUserService;
- }
- /**
- *
- * {@inheritdoc}
- * @see \Psr\Http\Server\MiddlewareInterface::process()
- */
- public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
- {
- $this->logger->debug('Middleware: ' . get_class($this));
- $authorization = $request->getHeaderLine(static::AUTHORIZATION);
- $this->logger->debug('set authorization token', [
- static::AUTHORIZATION => $authorization
- ]);
- $this->hubUserService->setToken($authorization);
- $this->activeUser->setInfo($this->hubUserService->getCurrentUserInfo());
- return $handler->handle($request);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement