1

我在我的网站中插入了“Google One Tap”,然后 Google 使用 POST 方法返回了“凭据”和“g_csrf_token”。现在我想知道,我如何从 PHP 中的“凭据”中获取电子邮件地址?

Codeigniter 4 是否有任何 PHP 库或任何模块?

我在前端只有这个:

<script src="https://accounts.google.com/gsi/client" async defer></script>
<div id="g_id_onload" data-client_id="000.apps.googleusercontent.com" data-login_uri="https://myweb.com/google"></div>

在后端文件“myurl/google”中

print_r($_POST);

谢谢

4

2 回答 2

-1

以下是获取方法:

<?php
 $token=$_POST["credential"];
 print_r(json_decode(base64_decode(str_replace('_', '/', str_replace('-','+',explode('.', $token)[1])))));
?>
于 2021-07-24T16:11:51.147 回答
-1

根据此文档,这是我们获得它的方式:

这里

验证-google-id-token

图 1

和这里 :

服务器端集成

图 2

// Firstly, create Google client object with client ID

$google_client = new Google_Client([
    'client_id' => YOUR_CLIENT_ID
]);

// Then, verify the credential

$token = $_POST['credential'];

$payload = $google_client->verifyIdToken($token);
if ($payload && $payload['aud'] == YOUR_CLIENT_ID)
{

    // Here you can get user email from Google, Also you can get all user data

    $email = $payload['email'];

    // Lastly, you can add user email to session, Or any thing you want in your app

    $_SESSION['user'] = $email;

}
于 2021-11-13T15:19:24.323 回答