Skip to content

Commit b2c84d5

Browse files
Merge pull request #2 from verifymy/NIT-2435
add hmac in allowed-redirects request
2 parents 4d7c807 + 71015ff commit b2c84d5

6 files changed

Lines changed: 28 additions & 10 deletions

File tree

examples/business/add-allowed-urls.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@
88

99
$baseURL = "https://oauth-dev.verifymycontent.com";
1010
$nucleusApiKey = "222222";
11+
$apiSecret = "22222222";
1112

1213
# Setup SDK
13-
$vmc = new VerifyMy($baseURL, $nucleusApiKey);
14+
$vmc = new VerifyMy($baseURL, $nucleusApiKey, $apiSecret);
1415

1516

1617
//add new allowed url request

examples/business/remove-allowed-urls.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@
88

99
$baseURL = "https://oauth-dev.verifymycontent.com";
1010
$nucleusApiKey = "222222";
11+
$apiSecret = "22222222";
1112

1213
# Setup SDK
13-
$vmc = new VerifyMy($baseURL, $nucleusApiKey);
14+
$vmc = new VerifyMy($baseURL, $nucleusApiKey, $apiSecret);
1415

1516

1617
//add new allowed url request

src/Business/BusinessClient.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ interface BusinessClient
1313
self::API_VERSION_V1 => BusinessClientV1::class,
1414
];
1515

16-
const URI = 'business';
16+
const URI = 'v1/business';
1717

1818
/**
1919
* @param AllowedRedirectUrlsRequest $request

src/Business/BusinessClientV1.php

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace VerifyMy\SDK\Business;
44

5+
use VerifyMy\SDK\Commons\Security\HMAC;
56
use VerifyMy\SDK\Commons\Transport\HTTP;
67
use VerifyMy\SDK\Business\BusinessClient;
78
use VerifyMy\SDK\Business\Entity\Requests\AllowedRedirectUrlsRequest;
@@ -18,18 +19,24 @@ final class BusinessClientV1 implements BusinessClient
1819
*/
1920
private $transport;
2021

22+
/**
23+
* @var HMAC $hmac
24+
*/
25+
private HMAC $hmac;
26+
2127

2228
/**
2329
* @var string $baseURL
2430
* @var string $nucleusApiKey
2531
*/
2632
private $nucleusApiKey;
2733

28-
public function __construct(string $baseURL, string $nucleusApiKey)
34+
public function __construct(string $baseURL, string $nucleusApiKey, string $apiSecret)
2935
{
3036
$uri = BusinessClient::URI;
3137
$this->transport = new HTTP("$baseURL/$uri");
3238
$this->nucleusApiKey = $nucleusApiKey;
39+
$this->hmac = new HMAC($nucleusApiKey, $apiSecret);
3340
}
3441

3542
/**
@@ -45,7 +52,7 @@ public function addAllowedRedirectUrls(AllowedRedirectUrlsRequest $request): voi
4552
self::ENDPOINT_ALLOWED_REDIRECT_URLS,
4653
$data["urls"],
4754
[
48-
'Authorization' => $this->nucleusApiKey,
55+
'Authorization' => $this->hmac->sign($data["urls"]),
4956
],
5057
[204]
5158
);
@@ -64,8 +71,9 @@ public function removeAllowedRedirectUrls(AllowedRedirectUrlsRequest $request):
6471
self::ENDPOINT_ALLOWED_REDIRECT_URLS,
6572
$data["urls"],
6673
[
67-
'Authorization' => $this->nucleusApiKey,
74+
'Authorization' => $this->hmac->sign($data["urls"]),
6875
],
6976
);
7077
}
71-
}
78+
}
79+

src/Commons/Security/HMAC.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
namespace VerifyMy\Commons\Security;
3+
namespace VerifyMy\SDK\Commons\Security;
44

55
class HMAC {
66

@@ -42,4 +42,12 @@ private function removePrefix($header)
4242
{
4343
return preg_replace('/^hmac ?/i', '', $header);
4444
}
45+
46+
/*
47+
* Sign the input with the API key and secret
48+
*/
49+
public function sign($input): string
50+
{
51+
return sprintf("hmac %s", $this->generate($input));
52+
}
4553
}

src/VerifyMy.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ final class VerifyMy implements VerifyMyInterface
1111
*/
1212
private $businessClient;
1313

14-
public function __construct($baseURL, $nucleusAPIKey)
14+
public function __construct($baseURL, $nucleusAPIKey, $apiSecret)
1515
{
1616
$businessClientClassName = BusinessClient::API_VERSIONS[BusinessClient::API_VERSION_V1];
17-
$this->businessClient = new $businessClientClassName($baseURL, $nucleusAPIKey);
17+
$this->businessClient = new $businessClientClassName($baseURL, $nucleusAPIKey, $apiSecret);
1818
}
1919

2020
public function business(): BusinessClient

0 commit comments

Comments
 (0)