Я новичок в веб-программировании.
Ранее я успешно создал скрипт входа в Google с помощью PHP. Вот мой код:
<?php
require_once __DIR__.'/vendor/autoload.php';
session_start();
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
$profile = $_SESSION['access_profile'];
echo "{$profile['displayName']}.</h2>";
} else {
echo "silakan login menggunakan akun Google";
echo "<a href='auth.php'><center><img src='google.png' style='max-width:70%;height:auto;'></center></a>";
}
?>
И:
<?php
require_once __DIR__.'/vendor/autoload.php';
session_start();
$client = new Google_Client();
$client->setAuthConfigFile('client_secret.json');
$client->setRedirectUri("https://madzae.id/auth.php");
$client->setScopes(array(
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/userinfo.profile",
"https://www.googleapis.com/auth/plus.me"
));
if (!isset($_GET['code'])) {
$auth_url = $client->createAuthUrl();
header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
} else {
$client->authenticate($_GET['code']);
$_SESSION['access_token'] = $client->getAccessToken();
try {
// profile
$plus = new Google_Service_Plus($client);
$_SESSION['access_profile'] = $plus->people->get("me");
} catch (\Exception $e) {
echo $e->__toString();
$_SESSION['access_token'] = "";
die;
}
header('Location:https://madzae.id/');
}
?>
Но, поскольку я использую другой домен, этот код не работает. Google прекратил использование Google API.
Google использует новую систему входа в систему, и вот код с официальной страницы Google. И я просто копирую и вставляю свой идентификатор Secret на свою страницу, скажем: index. php.
<html lang="en">
<head>
<meta name="google-signin-scope" content="profile email">
<meta name="google-signin-client_id" content="66xxx.apps.googleusercontent.com">
<script src="https://apis.google.com/js/platform.js" async defer></script>
</head>
<body>
<div class="g-signin2" data-onsuccess="onSignIn" data-theme="dark"></div>
<script>
function onSignIn(googleUser) {
// Useful data for your client-side scripts:
var profile = googleUser.getBasicProfile();
console.log("ID: " + profile.getId()); // Don't send this directly to your server!
console.log('Full Name: ' + profile.getName());
console.log('Given Name: ' + profile.getGivenName());
console.log('Family Name: ' + profile.getFamilyName());
console.log("Image URL: " + profile.getImageUrl());
console.log("Email: " + profile.getEmail());
// The ID token you need to pass to your backend:
var id_token = googleUser.getAuthResponse().id_token;
console.log("ID Token: " + id_token);
}
</script>
</body>
</html>
На странице отображается кнопка входа в систему и указывается, какая учетная запись выбрана для входа. У меня вопрос, как отобразить данные пользователя? В PHP и на той же странице индекс. php