123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- <?php
- namespace Aws\Token;
- use Aws\Identity\BearerTokenIdentity;
- use Aws\Token\TokenInterface;
- /**
- * Basic implementation of the AWS Token interface that allows callers to
- * pass in an AWS token in the constructor.
- */
- class Token extends BearerTokenIdentity implements TokenInterface, \Serializable
- {
- protected $token;
- protected $expires;
- /**
- * Constructs a new basic token object, with the specified AWS
- * token
- *
- * @param string $token Security token to use
- * @param int $expires UNIX timestamp for when the token expires
- */
- public function __construct($token, $expires = null)
- {
- $this->token = $token;
- $this->expires = $expires;
- }
- /**
- * Sets the state of a token object
- *
- * @param array $state array containing 'token' and 'expires'
- */
- public static function __set_state(array $state)
- {
- return new self(
- $state['token'],
- $state['expires']
- );
- }
- /**
- * @return string
- */
- public function getToken()
- {
- return $this->token;
- }
- /**
- * @return int
- */
- public function getExpiration()
- {
- return $this->expires;
- }
- /**
- * @return bool
- */
- public function isExpired()
- {
- return $this->expires !== null && time() >= $this->expires;
- }
- /**
- * @return array
- */
- public function toArray()
- {
- return [
- 'token' => $this->token,
- 'expires' => $this->expires
- ];
- }
- /**
- * @return string
- */
- public function serialize()
- {
- return json_encode($this->__serialize());
- }
- /**
- * Sets the state of the object from serialized json data
- */
- public function unserialize($serialized)
- {
- $data = json_decode($serialized, true);
- $this->__unserialize($data);
- }
- /**
- * @return array
- */
- public function __serialize()
- {
- return $this->toArray();
- }
- /**
- * Sets the state of this object from an array
- */
- public function __unserialize($data)
- {
- $this->token = $data['token'];
- $this->expires = $data['expires'];
- }
- }
|