Spaces:
No application file
No application file
File size: 1,549 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
<?php
declare(strict_types=1);
namespace Mautic\IntegrationsBundle\Auth\Support\Oauth2\Token;
use kamermans\OAuth2\Token\TokenInterface;
use kamermans\OAuth2\Token\TokenSerializer;
class IntegrationToken implements TokenInterface
{
// Pull in serialize() and unserialize() methods
use TokenSerializer;
/**
* @param mixed[] $extraData
*/
public function __construct(
?string $accessToken,
?string $refreshToken,
$expiresAt = null,
private array $extraData = []
) {
$this->accessToken = (string) $accessToken;
$this->refreshToken = (string) $refreshToken;
$this->expiresAt = (int) $expiresAt;
}
/**
* @return string The access token
*/
public function getAccessToken(): string
{
return $this->accessToken;
}
/**
* @return string The refresh token
*/
public function getRefreshToken(): string
{
return $this->refreshToken;
}
/**
* @return int The expiration timestamp
*/
public function getExpiresAt(): int
{
return $this->expiresAt;
}
public function isExpired(): bool
{
// Consider expired if there is not an access token
if (!$this->getAccessToken()) {
return true;
}
// Otherwise, consider expired if the expiration time has passed
return $this->expiresAt && $this->expiresAt < time();
}
public function getExtraData(): array
{
return $this->extraData;
}
}
|