forked from mirror/pixelfed
41 lines
963 B
PHP
41 lines
963 B
PHP
<?php
|
|
|
|
namespace App\Util\HttpSignatures;
|
|
|
|
use GuzzleHttp\HandlerStack;
|
|
use GuzzleHttp\Psr7\Request;
|
|
use App\Util\HttpSignatures\Context;
|
|
|
|
class GuzzleHttpSignatures
|
|
{
|
|
/**
|
|
* @param Context $context
|
|
* @return HandlerStack
|
|
*/
|
|
public static function defaultHandlerFromContext(Context $context)
|
|
{
|
|
$stack = HandlerStack::create();
|
|
$stack->push(self::middlewareFromContext($context));
|
|
|
|
return $stack;
|
|
}
|
|
|
|
/**
|
|
* @param Context $context
|
|
* @return \Closure
|
|
*/
|
|
public static function middlewareFromContext(Context $context)
|
|
{
|
|
return function (callable $handler) use ($context)
|
|
{
|
|
return function (
|
|
Request $request,
|
|
array $options
|
|
) use ($handler, $context)
|
|
{
|
|
$request = $context->signer()->sign($request);
|
|
return $handler($request, $options);
|
|
};
|
|
};
|
|
}
|
|
} |