francodacosta/caparica-guzzle-plugin

帮助您安全地向REST API发送请求的Guzzle插件

1.0 2014-10-04 22:08 UTC

This package is not auto-updated.

Last update: 2024-09-24 04:05:32 UTC


README

一个Guzzle插件,用于向启用了Caparica的API发送签名请求

安装

最简单的方式是通过composer安装

composer.phar require francodacosta/caparica-guzzle-plugin

如何使用它

use Caparica\Client\BasicClient as CaparicaClient;
use Caparica\Crypto\RequestSigner;
use Guzzle\Service\Client;

// 1) create the Caparica client with your client id and password
$client = new CaparicaClient;
$client->setCode('client code');
$client->setSecret('client Secret');

// 2) Instantiate a request signer
$requestSigner = new RequestSigner;

// 3) Set up the plugin
$plugin = new CaparicaGuzzlePlugin(
    $client,
    $requestSigner,
    $includeRequestPathInSignature = true,
    $includeRequestMethodInSignature = true
);

// 4) Register the plugin with guzzle
$guzzle = new Client;
$guzzle->addSubscriber($plugin)

// now you can do your requests, they will automatically be signed

通常这种配置是在DI容器中完成的,对于symfony,您可以在services.yml文件中添加以下内容

parameters:
    client.code: client-id
    client.secret: client-secret

    caparica.signature.includes.path: true
    caparica.signature.includes.method: true

services:
    caparica.client:
        class: Caparica\Client\BasicClient
        calls:
            - [setCode,   [%client.code%]]
            - [setsecret, [%client.secret%]]

    caparica.request.signer:
        class: Caparica\Crypto\RequestSigner

    caparica.guzzle.plugin:
        class: Francodacosta\CaparicaBundle\Guzzle\Plugin\CaparicaGuzzlePlugin
        arguments:
            - @caparica.client
            - @caparica.request.signer
            - %caparica.signature.includes.path%
            - %caparica.signature.includes.method%

    caparica.guzzle:
        class: Guzzle\Service\Client
        calls:
            - [addSubscriber, [@caparica.guzzle.plugin]]

在您的控制器中 $caparicaGuzzle = $this->get('caparica.guzzle'); 将为您提供配置了Caparica插件的Guzzle访问权限