for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/**
* Spiral Framework.
*
* @license MIT
* @author Anton Titov (Wolfy-J)
*/
declare(strict_types=1);
namespace Spiral\Auth;
final class AuthContext implements AuthContextInterface
{
/** @var ActorProviderInterface */
private $actorProvider;
/** @var TokenInterface|null */
private $token;
/** @var object|null */
private $actor;
/** @var string|null */
private $transport;
/** @var bool */
private $closed = false;
* @param ActorProviderInterface $actorProvider
public function __construct(ActorProviderInterface $actorProvider)
$this->actorProvider = $actorProvider;
}
* @inheritDoc
public function start(TokenInterface $token, string $transport = null): void
$this->closed = false;
$this->actor = null;
$this->token = $token;
$this->transport = $transport;
public function getToken(): ?TokenInterface
return $this->token;
public function getTransport(): ?string
return $this->transport;
public function getActor(): ?object
if ($this->closed) {
return null;
if ($this->actor === null && $this->token !== null) {
$this->actor = $this->actorProvider->getActor($this->token);
return $this->actor;
public function close(): void
$this->closed = true;
public function isClosed(): bool
return $this->closed;