PHP code example of abxy / tripwire-server
1. Go to this page and download the library: Download abxy/tripwire-server library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
abxy / tripwire-server example snippets
use Foil\Server\Client;
$client = new Client(secretKey: getenv('FOIL_SECRET_KEY') ?: null);
$page = $client->sessions()->list(verdict: 'bot', limit: 25);
$session = $client->sessions()->get('sid_0123456789abcdefghjkmnpqrs');
$client->sessions()->attachClientUser('sid_0123456789abcdefghjkmnpqrs', 'user_123');
$client->sessions()->clearClientUser('sid_0123456789abcdefghjkmnpqrs');
echo $session->decision['automation_status'] . ' ' . ($session->highlights[0]['summary'] ?? '') . PHP_EOL;
use Foil\Server\SealedToken;
$result = SealedToken::safeVerify($sealedToken, getenv('FOIL_SECRET_KEY') ?: null);
if (!$result->ok) {
error_log($result->error?->getMessage() ?? 'Foil verification failed.');
return;
}
echo $result->data?->decision['verdict'] . ' ' . $result->data?->decision['risk_score'];
foreach ($client->sessions()->iterate(search: 'signup') as $session) {
echo $session->id . ' ' . $session->latest_decision['verdict'] . PHP_EOL;
}
$fingerprint = $client->fingerprints()->get('vid_0123456789abcdefghjkmnpqrs');
echo $fingerprint->id;
$organization = $client->organizations()->get('org_0123456789abcdefghjkmnpqrs');
$updated = $client->organizations()->update('org_0123456789abcdefghjkmnpqrs', name: 'New Name');
echo $updated->name;
$created = $client->organizations()->apiKeys()->create('org_0123456789abcdefghjkmnpqrs', name: 'Production', type: 'secret', environment: 'live');
$client->organizations()->apiKeys()->revoke('org_0123456789abcdefghjkmnpqrs', $created->id);
$endpoint = $client->webhooks()->createEndpoint(
'org_0123456789abcdefghjkmnpqrs',
'Production alerts',
'https://example.com/foil/webhook',
['session.result.persisted', 'gate.session.approved'],
);
$events = $client->webhooks()->listEvents(
'org_0123456789abcdefghjkmnpqrs',
endpointId: $endpoint->id,
type: 'session.result.persisted',
);
echo $events->items[0]->webhook_deliveries[0]->status;
use Foil\Server\Client;
use Foil\Server\GateDelivery;
$client = new Client();
$services = $client->gate()->registry()->list();
$session = $client->gate()->sessions()->create(
serviceId: 'foil',
accountName: 'my-project',
delivery: GateDelivery::createDeliveryKeyPair()['delivery'],
);
echo $services[0]->id . ' ' . $session->consent_url . PHP_EOL;
use Foil\Server\GateDelivery;
$keyPair = GateDelivery::createDeliveryKeyPair();
$response = GateDelivery::createGateApprovedWebhookResponse([
'delivery' => $keyPair['delivery'],
'outputs' => [
'FOIL_PUBLISHABLE_KEY' => 'pk_live_...',
'FOIL_SECRET_KEY' => 'sk_live_...',
],
]);
$payload = GateDelivery::decryptGateDeliveryEnvelope($keyPair['private_key'], $response['encrypted_delivery']);
echo $payload['outputs']['FOIL_SECRET_KEY'] . PHP_EOL;
use Foil\Server\Exception\FoilApiError;
try {
$client->sessions()->list(limit: 999);
} catch (FoilApiError $error) {
error_log($error->status . ' ' . $error->code . ' ' . $error->getMessage());
}