如何检查 Google Client_ID 和 Client_Secret 是否有效

How to check if Google Client_ID and Client_Secret Valid or not

我正在 Node.js 中制作一个模块,用户可以在其中制作自己的 YouTube 直播机器人。该模块要求用户提供其应用程序的客户端 ID 和客户端密码。但是我如何检查他们输入的客户端 ID 和客户端密码是否有效,如果不是则抛出适当的错误。是否有端点可以做到这一点?

无法验证客户端 ID 或客户端密码。唯一的方法是尝试它们,如果它们不起作用,则向用户显示错误。

您也许可以为 client_id 想出一个正则表达式测试,但我不推荐它,因为这些年来格式已经改变了好几次,这会导致您的应用程序出现问题。

我只想说尝试使用它,如果它失败给他们一个错误消息。

注意:我希望您不会提示人们向您提供他们的客户 ID 和客户机密,因为如果您敦促人们向您提供您告诉他们的凭据,那么它会违反 googles TOS 要求人们提供他们的客户凭据打破服务条款。

有效代码:

function ProjectValid($PostArray){
    $curl = curl_init();
    curl_setopt_array($curl, array(
        CURLOPT_URL => 'https://oauth2.googleapis.com/token',
        CURLOPT_POST => true,
        CURLOPT_CUSTOMREQUEST => "POST",
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_TIMEOUT => 30,
        CURLOPT_HTTPHEADER => [
            'Content-Type: application/x-www-form-urlencoded',
        ],
        CURLOPT_POSTFIELDS => http_build_query([
            'code'          => md5(time()),
            'client_id'     => $PostArray['ClientID'],
            'client_secret' => $PostArray['ClientSecret'],
            'redirect_uri'  => $_SERVER['REQUEST_SCHEME'].'://'.$_SERVER["HTTP_HOST"].'/'.$URL,
            'grant_type'    => 'authorization_code'
        ]),
    ));
    $Response   = curl_exec($curl);
    curl_close($curl);
    if($Array=json_decode($Response,true) and isset($Array['error']) and $Array['error'] == 'invalid_grant'){
        return true;
    }else{
        return false;
    }
}