<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
olipayne / guzzle-web-bot-auth-middleware example snippets
uzzleHttp\Client;
use GuzzleHttp\HandlerStack;
use Olipayne\GuzzleWebBotAuth\WebBotAuthMiddleware;
// Ensure libsodium is available
if (!extension_loaded('sodium')) {
die('Libsodium extension is th/to/your/ed25519_private.key';
// Option B: The base64 encoded private key string directly
// $base64PrivateKey = 'YOUR_BASE64_ENCODED_ED25519_PRIVATE_KEY_FROM_SCRIPT_OUTPUT';
$keyId = 'YOUR_GENERATED_ED25519_KEY_ID'; // The JWK Thumbprint from the script output
$signatureAgentUrl = 'https://your-bot.example.com/.well-known/jwks.json'; // URL to your public JWKSet
$botAuthMiddleware = new WebBotAuthMiddleware(
$privateKeyPath, // or $base64PrivateKey
$keyId,
$signatureAgentUrl
// Optional tag and expires duration remain the same
);
// 3. Push the middleware onto the stack
$stack->push($botAuthMiddleware);
// 4. Create the Guzzle client with the handler stack
$client = new Client(['handler' => $stack]);
// Requests are now signed using Ed25519
try {
$response = $client->get('https://target-service.example.com/api/data');
// ...
} catch (\Exception $e) {
// ...
}
bash
# Using a string
php vendor/olipayne/guzzle-web-bot-auth-middleware/bin/generate-jwk.php YOUR_BASE64_PUBLIC_KEY_STRING
# Using a file
php vendor/olipayne/guzzle-web-bot-auth-middleware/bin/generate-jwk.php path/to/your/ed25519_public.key
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.