You've already forked wc-licensed-product
Update README with response signing documentation
- Added Response Signing section explaining X-License-Signature and X-License-Timestamp headers - Added wp-config.php configuration example for WC_LICENSE_SERVER_SECRET - Updated client section to recommend official magdev/wc-licensed-product-client Composer package - Documented LicenseClient and SecureLicenseClient classes Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
36
README.md
36
README.md
@@ -107,12 +107,42 @@ When a customer purchases a licensed product, they must enter the domain where t
|
|||||||
|
|
||||||
Full API documentation available in `openapi.json` (OpenAPI 3.1 specification).
|
Full API documentation available in `openapi.json` (OpenAPI 3.1 specification).
|
||||||
|
|
||||||
### Client Examples
|
### Response Signing (Optional)
|
||||||
|
|
||||||
Ready-to-use API client examples are available in `docs/client-examples/`:
|
When the server is configured with a shared secret, all API responses include cryptographic signatures for tamper protection:
|
||||||
|
|
||||||
|
**Configuration (wp-config.php):**
|
||||||
|
|
||||||
|
```php
|
||||||
|
define('WC_LICENSE_SERVER_SECRET', 'your-secure-random-string-min-32-chars');
|
||||||
|
```
|
||||||
|
|
||||||
|
**Response Headers:**
|
||||||
|
|
||||||
|
| Header | Description |
|
||||||
|
| ------ | ----------- |
|
||||||
|
| `X-License-Signature` | HMAC-SHA256 signature of the response body |
|
||||||
|
| `X-License-Timestamp` | Unix timestamp when the response was generated |
|
||||||
|
|
||||||
|
The signature prevents man-in-the-middle attacks and ensures response integrity. Use the `magdev/wc-licensed-product-client` Composer package with the `SecureLicenseClient` class to automatically verify signatures.
|
||||||
|
|
||||||
|
### Client Libraries & Examples
|
||||||
|
|
||||||
|
**PHP (Recommended):** Install the official client library via Composer:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
composer require magdev/wc-licensed-product-client
|
||||||
|
```
|
||||||
|
|
||||||
|
The library provides:
|
||||||
|
|
||||||
|
- `LicenseClient` - Standard client for API calls
|
||||||
|
- `SecureLicenseClient` - Client with automatic response signature verification
|
||||||
|
|
||||||
|
**Example clients** for other languages are available in `docs/client-examples/`:
|
||||||
|
|
||||||
- **cURL** - Shell script examples ([curl.sh](docs/client-examples/curl.sh))
|
- **cURL** - Shell script examples ([curl.sh](docs/client-examples/curl.sh))
|
||||||
- **PHP** - Client class with examples ([php-client.php](docs/client-examples/php-client.php))
|
- **PHP** - Standalone client example ([php-client.php](docs/client-examples/php-client.php))
|
||||||
- **Python** - Client class with dataclasses ([python-client.py](docs/client-examples/python-client.py))
|
- **Python** - Client class with dataclasses ([python-client.py](docs/client-examples/python-client.py))
|
||||||
- **JavaScript** - Browser and Node.js client ([javascript-client.js](docs/client-examples/javascript-client.js))
|
- **JavaScript** - Browser and Node.js client ([javascript-client.js](docs/client-examples/javascript-client.js))
|
||||||
- **C#** - Async client with System.Text.Json ([csharp-client.cs](docs/client-examples/csharp-client.cs))
|
- **C#** - Async client with System.Text.Json ([csharp-client.cs](docs/client-examples/csharp-client.cs))
|
||||||
|
|||||||
Reference in New Issue
Block a user