按照指令here,我尝试在服务器上创建一个函数,以验证id_token,如果成功验证,则返回“ true”,如果无效则返回“ false”。
当前,当它验证合法的id_token时,没有问题,但是当我给它一个假冒的东西进行测试时,出现500(内部服务器错误)错误。
函数失败后,我将其缩减了以使其更接近API instructions。
我正在使用PHP版本7.3.7
var id_token = auth2.currentUser.get().getAuthResponse().id_token;
if (typeof id_token == 'undefined') {
id_token = "XYZ123"; //dummy id_token if they're not logged in
}
var xhr = new XMLHttpRequest();
xhr.open('POST', 'submit.php');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onload = function() {
console.log(this.responseText);
};
xhr.send('id_token=' + id_token + '&q=' + textToSend);
require_once 'vendor/autoload.php';
$id_token = $_POST["id_token"];
$client = new Google_Client(['client_id' => $CLIENT_ID]); // Specify the CLIENT_ID of the app that accesses the backend
$payload = $client->verifyIdToken($id_token);
if ($payload) {
echo $payload['sub'];
} else {
// Invalid ID token
}
我并不一定要找人为我编写我的函数,但是当我的代码与说明中的代码完全相同时,我要解释为什么会出现此错误。