/** * Get a new access token. * * @return AccessToken|null */ protected function acquireAccessToken() { $accessToken = null; if ($this->refreshTokenGrantType) { // Get an access token using the stored refresh token. if ($this->refreshToken) { $this->refreshTokenGrantType->setRefreshToken($this->refreshToken->getToken()); } if ($this->refreshTokenGrantType->hasRefreshToken()) { $accessToken = $this->refreshTokenGrantType->getToken(); } } if (!$accessToken && $this->grantType) { // Get a new access token. $accessToken = $this->grantType->getToken(); } return $accessToken ?: null; }
/** * Set the refresh token. * * @param AccessToken|string $refreshToken The refresh token * * @return self */ public function setRefreshToken($refreshToken) { if (!$this->accessToken instanceof AccessToken) { throw new \InvalidArgumentException('Unable to update the refresh token. You have never set first the access token.'); } if (is_string($refreshToken)) { $refreshToken = new AccessToken($refreshToken, 'refresh_token'); } elseif (!$refreshToken instanceof AccessToken) { throw new \InvalidArgumentException('Invalid refresh token'); } $this->accessToken->setRefreshToken($refreshToken); if ($this->refreshTokenGrantType instanceof RefreshTokenGrantTypeInterface) { $this->refreshTokenGrantType->setRefreshToken($refreshToken->getToken()); } return $this; }