123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- <?php
- namespace Aws\Token;
- /**
- * Token that comes from the SSO provider
- */
- class SsoToken extends Token
- {
- private $refreshToken;
- private $clientId;
- private $clientSecret;
- private $registrationExpiresAt;
- private $region;
- private $startUrl;
- /**
- * Constructs a new SSO token object, with the specified AWS
- * token
- *
- * @param string $token Security token to use
- * @param int $expires UNIX timestamp for when the token expires
- * @param int $refreshToken An opaque string returned by the sso-oidc service
- * @param int $clientId The client ID generated when performing the registration portion of the OIDC authorization flow
- * @param int $clientSecret The client secret generated when performing the registration portion of the OIDC authorization flow
- * @param int $registrationExpiresAt The expiration time of the client registration (clientId and clientSecret)
- * @param int $region The configured sso_region for the profile that credentials are being resolved for
- * @param int $startUrl The configured sso_start_url for the profile that credentials are being resolved for
- */
- public function __construct(
- $token,
- $expires,
- $refreshToken = null,
- $clientId = null,
- $clientSecret = null,
- $registrationExpiresAt = null,
- $region = null,
- $startUrl = null
- ) {
- parent::__construct($token, $expires);
- $this->refreshToken = $refreshToken;
- $this->clientId = $clientId;
- $this->clientSecret = $clientSecret;
- $this->registrationExpiresAt = $registrationExpiresAt;
- $this->region = $region;
- $this->startUrl = $startUrl;
- }
- /**
- * @return bool
- */
- public function isExpired()
- {
- if (isset($this->registrationExpiresAt)
- && time() >= $this->registrationExpiresAt
- ) {
- return false;
- }
- return $this->expires !== null && time() >= $this->expires;
- }
- /**
- * @return string|null
- */
- public function getRefreshToken()
- {
- return $this->refreshToken;
- }
- /**
- * @return string|null
- */
- public function getClientId()
- {
- return $this->clientId;
- }
- /**
- * @return string|null
- */
- public function getClientSecret()
- {
- return $this->clientSecret;
- }
- /**
- * @return int|null
- */
- public function getRegistrationExpiresAt()
- {
- return $this->registrationExpiresAt;
- }
- /**
- * @return string|null
- */
- public function getRegion()
- {
- return $this->region;
- }
- /**
- * @return string|null
- */
- public function getStartUrl()
- {
- return $this->startUrl;
- }
- /**
- * Creates an instance of SsoToken from a token data.
- *
- * @param $tokenData
- *
- * @return SsoToken
- */
- public static function fromTokenData($tokenData): SsoToken
- {
- return new SsoToken(
- $tokenData['accessToken'],
- \strtotime($tokenData['expiresAt']),
- isset($tokenData['refreshToken']) ? $tokenData['refreshToken'] : null,
- isset($tokenData['clientId']) ? $tokenData['clientId'] : null,
- isset($tokenData['clientSecret']) ? $tokenData['clientSecret'] : null,
- isset($tokenData['registrationExpiresAt']) ? $tokenData['registrationExpiresAt'] : null,
- isset($tokenData['region']) ? $tokenData['region'] : null,
- isset($tokenData['startUrl']) ? $tokenData['startUrl'] : null
- );
- }
- }
|