27 lines
841 B
PHP
27 lines
841 B
PHP
|
|
<?php
|
|||
|
|
|
|||
|
|
namespace app\common\utils;
|
|||
|
|
|
|||
|
|
class OauthClients
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 生成 OAuth2 client 凭证
|
|||
|
|
*
|
|||
|
|
* @param int $idBytes 用于生成 client_id 的随机字节长度(最终 hex 长度 = $idBytes * 2)
|
|||
|
|
* @param int $secretBytes 用于生成 client_secret 的随机字节长度(最终 hex 长度 = $secretBytes * 2)
|
|||
|
|
* @return array ['client_id' => string, 'client_secret' => string]
|
|||
|
|
*/
|
|||
|
|
public function generateClientCredentials(int $idBytes = 16, int $secretBytes = 32): array
|
|||
|
|
{
|
|||
|
|
// 生成随机字节,并转为十六进制字符串
|
|||
|
|
$clientId = bin2hex(random_bytes($idBytes));
|
|||
|
|
$clientSecret = bin2hex(random_bytes($secretBytes));
|
|||
|
|
|
|||
|
|
return [
|
|||
|
|
'client_id' => $clientId,
|
|||
|
|
'client_secret' => $clientSecret,
|
|||
|
|
];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|