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;
 }
예제 #4
0
 /**
  * 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();
 }