for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Spatie\WebhookClient\SignatureValidator;
use Illuminate\Http\Request;
use Spatie\WebhookClient\Exceptions\WebhookFailed;
use Spatie\WebhookClient\WebhookConfig;
class DefaultSignatureValidator implements SignatureValidator
{
public function isValid(Request $request, WebhookConfig $config): bool
$signature = $request->header($config->signatureHeaderName);
if (! $signature) {
return false;
}
$signingSecret = $config->signingSecret;
if (empty($signingSecret)) {
throw WebhookFailed::signingSecretNotSet();
$computedSignature = hash_hmac('sha256', $request->getContent(), $signingSecret);
return hash_equals($signature, $computedSignature);