Final Class Yiisoft\Yii\AuthClient\Signature\HmacSha
| Inheritance | Yiisoft\Yii\AuthClient\Signature\HmacSha » Yiisoft\Yii\AuthClient\Signature\Signature |
|---|
HmacSha represents 'HMAC SHA' signature method.
Note: This class requires PHP "Hash" extension(https://php.net/manual/en/book.hash.php).
Public Methods
| Method | Description | Defined By |
|---|---|---|
| __construct() | Yiisoft\Yii\AuthClient\Signature\HmacSha | |
| generateSignature() | Yiisoft\Yii\AuthClient\Signature\HmacSha | |
| getName() | Yiisoft\Yii\AuthClient\Signature\HmacSha | |
| verify() | Verifies given OAuth request. | Yiisoft\Yii\AuthClient\Signature\Signature |
Method Details
| public mixed __construct ( string $algorithm ) | ||
| $algorithm | string | |
public function __construct(/**
* @var string hash algorithm, e.g. `sha1`, `sha256` and so on.
*
* @link https://php.net/manual/ru/function.hash-algos.php
*/
private readonly string $algorithm
) {
if (!function_exists('hash_hmac')) {
throw new NotSupportedException('PHP "Hash" extension is required.');
}
}
| public string generateSignature ( string $baseString, string $key ) | ||
| $baseString | string | |
| $key | string | |
#[\Override]
public function generateSignature(string $baseString, string $key): string
{
return base64_encode(hash_hmac($this->algorithm, $baseString, $key, true));
}
| public string getName ( ) |
#[\Override]
public function getName(): string
{
return 'HMAC-' . strtoupper($this->algorithm);
}
Defined in: Yiisoft\Yii\AuthClient\Signature\Signature::verify()
Verifies given OAuth request.
| public boolean verify ( string $signature, string $baseString, string $key ) | ||
| $signature | string |
Signature to be verified. |
| $baseString | string |
Signature base string. |
| $key | string |
Signature key. |
| return | boolean |
Success. |
|---|---|---|
public function verify(string $signature, string $baseString, string $key): bool
{
$expectedSignature = $this->generateSignature($baseString, $key);
if (empty($signature) || empty($expectedSignature)) {
return false;
}
return strcmp($expectedSignature, $signature) === 0;
}
Signup or Login in order to comment.