%PDF- %PDF-
Direktori : /home/graphicd/www/vebto/vendor/kreait/firebase-tokens/src/Firebase/Auth/Token/ |
Current File : /home/graphicd/www/vebto/vendor/kreait/firebase-tokens/src/Firebase/Auth/Token/Generator.php |
<?php declare(strict_types=1); namespace Firebase\Auth\Token; use BadMethodCallException; use DateInterval; use DateTimeImmutable; use DateTimeInterface; use Lcobucci\JWT\Configuration; use Lcobucci\JWT\Signer; use Lcobucci\JWT\Token; final class Generator implements Domain\Generator { use ConvertsDates; /** @var string */ private $clientEmail; /** @var Configuration */ private $config; /** * @deprecated 1.9.0 * @see \Kreait\Firebase\JWT\CustomTokenGenerator */ public function __construct( string $clientEmail, string $privateKey, Signer $signer = null ) { $this->clientEmail = $clientEmail; $this->config = Configuration::forSymmetricSigner( $signer ?: new Signer\Rsa\Sha256(), Signer\Key\InMemory::plainText($privateKey) ); } /** * Returns a token for the given user and claims. * * @param mixed $uid * @param DateTimeInterface $expiresAt * * @throws BadMethodCallException when a claim is invalid */ public function createCustomToken($uid, array $claims = [], DateTimeInterface $expiresAt = null): Token { $now = new DateTimeImmutable(); $expiresAt = $expiresAt ? $this->convertExpiryDate($expiresAt) : $now->add(new DateInterval('PT1H')); $builder = $this->config->builder() ->issuedBy($this->clientEmail) ->relatedTo($this->clientEmail) ->permittedFor('https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit') ->withClaim('uid', (string) $uid) ->issuedAt($now) ->expiresAt($expiresAt); if (!empty($claims)) { $builder->withClaim('claims', $claims); } return $builder->getToken($this->config->signer(), $this->config->signingKey()); } }