public function createAccessToken(IOAuth2Client $client, $data, $scope = null, $access_token_lifetime = null, $issue_refresh_token = true, $refresh_token_lifetime = null)
{
$token = array("access_token" => $this->genAccessToken(), "expires_in" => $access_token_lifetime ?: $this->getVariable(self::CONFIG_ACCESS_LIFETIME), "token_type" => $this->getVariable(self::CONFIG_TOKEN_TYPE), "scope" => $scope);
$this->storage->createAccessToken($token["access_token"], $client, $data, time() + ($access_token_lifetime ?: $this->getVariable(self::CONFIG_ACCESS_LIFETIME)), $scope);
// Issue a refresh token also, if we support them
if ($this->storage instanceof IOAuth2RefreshTokens && $issue_refresh_token === true) {
$token["refresh_token"] = $this->genAccessToken();
$this->storage->createRefreshToken($token["refresh_token"], $client, $data, time() + ($refresh_token_lifetime ?: $this->getVariable(self::CONFIG_REFRESH_LIFETIME)), $scope);
// If we've granted a new refresh token, expire the old one
if (null !== $this->oldRefreshToken) {
$this->storage->unsetRefreshToken($this->oldRefreshToken);
$this->oldRefreshToken = null;
}
}
if ($this->storage instanceof IOAuth2GrantCode) {
if (null !== $this->usedAuthCode) {
$this->storage->markAuthCodeAsUsed($this->usedAuthCode->getToken());
$this->usedAuthCode = null;
}
}
return $token;
}