/** * Persists a new access token to permanent storage. * * @param \League\OAuth2\Server\Entities\AccessTokenEntityInterface $accessTokenEntity * @return mixed */ public function persistNewAccessToken(AccessTokenEntityInterface $accessTokenEntity) { $db = CommonModel::getDb(); $transaction = $db->beginTransaction(); try { $accessTokenModel = new AccessTokensModel(); $accessTokenModel->id = $accessTokenEntity->getIdentifier(); $accessTokenModel->expire_time = $accessTokenEntity->getExpiryDateTime()->getTimestamp(); $accessTokenModel->user_id = $accessTokenEntity->getUserIdentifier(); $accessTokenModel->client_id = $accessTokenEntity->getClient()->getIdentifier(); if (!$accessTokenModel->save()) { return false; } foreach ($accessTokenEntity->getScopes() as $item) { $accessTokenScopesModel = new AccessTokenScopesModel(); $accessTokenScopesModel->access_token_id = $accessTokenModel->id; $accessTokenScopesModel->scope_id = $item->getIdentifier(); $accessTokenScopesModel->save(); } $transaction->commit(); return true; } catch (\Exception $e) { $transaction->rollBack(); return false; } }
/** * @param string $clientIdentifier * @param string $scope |null * @return boolean */ public function removeClientScope($clientIdentifier, $scope = null) { $condition = ['client_id' => $clientIdentifier]; if ($scope) { $condition['scope_id'] = $scope; } $scopes = ClientScopesModel::findAll($condition); $db = CommonModel::getDb(); $transaction = $db->beginTransaction(); try { foreach ($scopes as $scope) { $scope->delete(); } $transaction->commit(); return true; } catch (\Exception $e) { $transaction->rollBack(); return false; } }