/** * @return AccessToken|null */ public function getToken() { if (!is_null($this->token) && $this->token->isExpired()) { $this->token = null; } if (is_null($this->token)) { $response = $this->gigya->socialize()->getToken(['grant_type' => 'none'], ['auth' => 'credentials']); if ($response->getErrorCode() == ErrorCode::OK) { $data = $response->getData(); $token = $data->get('access_token'); $expires = null; if ($data->has('expires_in')) { $expires = (new DateTime())->add(new DateInterval(sprintf('PT%dS', $data->get('expires_in', 0)))); } $this->token = new AccessToken($token, $expires); } } return $this->token; }
public function testProperties() { $token = new AccessToken('token'); static::assertEquals('token', $token->getToken()); static::assertNull($token->getExpires()); static::assertFalse($token->isExpired()); $token->setToken('new token'); static::assertEquals('new token', $token->getToken()); $expires = (new DateTime())->add(new DateInterval('PT60S')); $token->setExpires($expires); static::assertEquals($expires, $token->getExpires()); static::assertFalse($token->isExpired()); $expires = new DateTime(); $token->setExpires($expires); static::assertTrue($token->isExpired()); }