researchpanelasia/sopx-auth-v1_1

1.0.0 2016-03-07 11:56 UTC

This package is not auto-updated.

Last update: 2024-09-14 16:36:34 UTC


README

Build Status

名称

SOPx_Auth_V1_1 - SOP v1.1 认证模块

概述

$auth = new \SOPx\Auth\V1_1\Client('<APP_ID>', '<APP_SECRET>');

$request = $auth->createRequest(
  'GET', 'https://<API_HOST>/path/to/endpoint',
  array('app_id' => '<APP_ID>', 'app_mid' => '<APP_MID>', ... )
);
//=> isa GuzzleHttp\Psr7\Request object

OR

$sig = \SOPx\Auth\V1_1\Util::createSignature(
  array(
    'app_id' => '<APP_ID>',
    'app_mid' => '<APP_MID>',
    'time' => $time,
    ...
  ), '<APP_SECRET>'
);
//=> HMAC SHA256 hash signature

描述

此模块允许您生成 SOP v1.1 签名,向 SOP v1.1 API 发送 HTTP 请求。

如何使用

向 SOP API 端点发送有效请求

  $auth = new \SOPx\Auth\V1_1\Client('<APP_ID>', '<APP_SECRET>');

  $request = $auth->createRequest(
    'GET',
    'https://<API_HOST>/path/to/endpoint',
    array(
      'param1' => 'foo',
      'param2' => 'bar',
      ...
    )
  );

  // Then use Guzzle HTTP client to send request

创建有效的 URL(例如,用于 JSONP 请求)

  $auth = new \SOPx\Auth\V1_1\Client('<APP_ID>', '<APP_SECRET>');

  $request = $auth->createRequest(
    'GET',
    'https://<API_HOST>/path/to/jsonp/endpoint',
    array(
      'param1' => 'foo',
      'param2' => 'bar',
      ...
    )
  );

  // Then maybe in your HTML template:
  <script src="<?php echo $request->getUri(); ?>"></script>

发送各种请求类型

GET

  $request = $auth->createRequest('GET', (string) $url, (array) $params)

POST

对于 application/x-www-form-urlencoded 类型

  $request = $auth->createRequest('POST', (string) $url, (array) $params)

对于 application/json 类型

  $request = $auth->createRequest('POSTJSON', (string) $url, (array) $params)

DELETE

  $request = $auth->createRequest('DELETE', (string) $url, (array) $params)

PUT

对于 application/x-www-form-urlencoded 类型

  $request = $auth->createRequest('PUT', (string) $url, (array) $params)

对于 application/json 类型

  $request = $auth->createRequest('PUTJSON', (string) $url, (array) $params)

验证请求签名以确认其有效性

  $auth = new \SOPx\Auth\V1_1\Client('<APP_ID>', '<APP_SECRET>');

  $sig = $params['sig'];
  unset($params['sig']);

  if ($auth->verifySignature($sig, $params)) {
    // Request is valid
  }
  else {
    // Request is invalid
  }

SOP v1.1 认证中定义的 请求类型