swop / github-webhook-stackphp

Stack中间件,用于验证传入的GitHub webhook请求是否被正确签名。

v1.1 2016-11-10 23:35 UTC

This package is not auto-updated.

Last update: 2024-09-23 15:18:46 UTC


README

Build Status

Stack中间件,用于限制应用程序对GitHub事件机器人的访问,并要求签名有效。

每个传入请求都会检查其X-Hub-Signature头部,以验证请求最初是由GitHub执行的。任何没有正确签名的请求都将导致返回401 Unauthorized JSON响应。

安装

建议通过Composer安装此库。

composer require "swop/github-webhook-stackphp"

使用

Silex示例

require __DIR__ . '/../vendor/autoload.php';

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

$app = new \Silex\Application();

$app->get('/', function(Request $request) {
    return new Response('Hello world!', 200);
});

$app = (new \Stack\Builder())
    ->push('Swop\GitHubWebHookStackPHP\GitHubWebHook', 'my_secret')
    ->resolve($app)
;

$request = Request::createFromGlobals();
$response = $app->handle($request)->send();

$app->terminate($request, $response);

Symfony示例

# web/app_dev.php

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Debug\Debug;

$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
Debug::enable();

require_once __DIR__.'/../app/AppKernel.php';

$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();

$stack = (new Stack\Builder())
    ->push('Swop\GitHubWebHookStackPHP\GitHubWebHook', 'my_secret')
;

$kernel = $stack->resolve($kernel);

Request::enableHttpMethodParameterOverride();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

贡献

查看CONTRIBUTING文件。

原始贡献者

许可协议

此库在MIT许可下发布。请参阅包含的LICENSE文件的完整许可协议。