public function testAccessTokenGetters() { $data = ['access_token' => 'testToken', 'token_type' => 'bearer', 'expires_in' => 300, 'scope' => 'profile administration', 'refresh_token' => 'testRefreshToken']; $token = new AccessToken($data['access_token'], $data['token_type'], $data); $this->assertEquals($data['access_token'], $token->getToken()); $this->assertEquals($data['token_type'], $token->getType()); $this->assertEquals($data['scope'], $token->getScope()); $this->assertGreaterThan(time(), $token->getExpires()->getTimestamp()); $this->assertFalse($token->isExpired()); $this->assertEquals($data, $token->getData()); $this->assertEquals('refresh_token', $token->getRefreshToken()->getType()); $this->assertEquals($data['refresh_token'], $token->getRefreshToken()->getToken()); }
/** * Set the access token. * * @param AccessToken|string $accessToken * @param string $type * @param int $expires * * @return self */ public function setAccessToken($accessToken, $type = null, $expires = null) { if (is_string($accessToken)) { $this->accessToken = new AccessToken($accessToken, $type, ['expires' => $expires]); } elseif ($accessToken instanceof AccessToken) { $this->accessToken = $accessToken; } else { throw new \InvalidArgumentException('Invalid access token'); } if ($this->accessToken->getRefreshToken() instanceof AccessToken && $this->refreshTokenGrantType instanceof RefreshTokenGrantTypeInterface) { $this->refreshTokenGrantType->setRefreshToken($this->accessToken->getRefreshToken()->getToken()); } return $this; }
/** * Get the access token. * * @return AccessToken|null Oauth2 access token */ public function getAccessToken() { if ($this->accessToken && $this->accessToken->isExpired()) { // The access token has expired. $this->accessToken = null; } if (null === $this->accessToken) { // Try to acquire a new access token from the server. $this->accessToken = $this->acquireAccessToken(); if ($this->accessToken) { $this->refreshToken = $this->accessToken->getRefreshToken() ?: null; } } return $this->accessToken; }
/** * Save an access token to the session. * * @param AccessToken $token */ protected function addTokenToSession(AccessToken $token) { $this->session->set('accessToken', $token->getToken()); $this->session->set('tokenType', $token->getType()); if ($token->getExpires()) { $this->session->set('expires', $token->getExpires()->getTimestamp()); } if ($token->getRefreshToken()) { $this->session->set('refreshToken', $token->getRefreshToken()->getToken()); } }
/** * Set the access token. * * @param AccessToken|string $accessToken * @param string $type * @param int $expires */ public function setAccessToken($accessToken, $type = null, $expires = null) { if (is_string($accessToken)) { $accessToken = new AccessToken($accessToken, $type, ['expires' => $expires]); } elseif (!$accessToken instanceof AccessToken) { throw new \InvalidArgumentException('Invalid access token'); } $this->accessToken = $accessToken; $this->refreshToken = $accessToken->getRefreshToken(); }