compwright/x-hub-signature

PHP的X-Hub-Signature webhook签名实用工具

v1.0.0 2024-04-10 01:11 UTC

This package is auto-updated.

Last update: 2024-09-10 02:04:43 UTC


README

Sponsor on GitHub

X-Hub-Signature是一种验证来自FacebookGitHub或使用此签名方案的任何其他来源的webhooks的有效方法。

为了避免安全风险,包括时间攻击,已经采取了相应的措施。

入门

安装

composer require compwright/x-hub-signature

用法

对包含请求数据的缓冲区进行签名

<?php

use Compwright\XHubSignature;
use InvalidArgumentException;

$signer = new XHubSignature\Sha256();

// Generate the signature header for an outbound webhook, i.e.
//
//   X-Hub-Signature-256: sha256=...
//
$headerName = $signer->getHeaderName();
$headerValue = $signer->sign($requestBody, $secret);
$signatureHeader = $headerName . ': ' . $headerValue;

// Verify an inbound webhook
$isValid = $signer->verify($signatureHeaderValue, $requestBody, $secret);
if ($isValid === false) {
    throw new InvalidArgumentException('Bad Request');
}

许可证

MIT许可证