60 lines
2.4 KiB
PHP
60 lines
2.4 KiB
PHP
<?php
|
|
require("../../include/variables.php");
|
|
require("../../include/init.php");
|
|
require("../../include/main-functions.php");
|
|
require ("./vendor/autoload.php");
|
|
|
|
$pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlDatabasePass);
|
|
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|
$data = json_decode(file_get_contents('php://input'), true);
|
|
$id_token = $data['id_token'];
|
|
|
|
$client = new Google_Client(['client_id' => '492430091865-vtggls1qrvs2snmeidp12gupsm964f4b.apps.googleusercontent.com']);
|
|
$payload = $client->verifyIdToken($id_token);
|
|
if ($payload) {
|
|
$userid = $payload['sub'];
|
|
$email = $payload['email'];
|
|
$name = $payload['name'];
|
|
|
|
// Vérifiez si l'utilisateur existe dans la base de données
|
|
$sqlRequest = "SELECT ID, username, display_name, role, accreditation FROM users WHERE email = :email";
|
|
$request = $pdo->prepare($sqlRequest);
|
|
$request->bindParam(":email", $email);
|
|
$request->execute();
|
|
$result = $request->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
if ($result) {
|
|
// L'utilisateur existe, connectez-le
|
|
$_SESSION['userID'] = $result[0]['ID'];
|
|
$_SESSION['userName'] = $result[0]['username'];
|
|
$_SESSION['userDisplayName'] = $result[0]['display_name'];
|
|
$_SESSION['userRole'] = $result[0]['role'];
|
|
$_SESSION['userAccreditation'] = $result[0]['accreditation'];
|
|
echo json_encode(['success' => true]);
|
|
} else {
|
|
// L'utilisateur n'existe pas, créez-le
|
|
$sqlInsert = "INSERT INTO users (username, email, display_name, role) VALUES (:username, :email, :display_name, 1)";
|
|
$insert = $pdo->prepare($sqlInsert);
|
|
$insert->bindParam(":username", $name);
|
|
$insert->bindParam(":email", $email);
|
|
$insert->bindParam(":display_name", $name);
|
|
$insert->execute();
|
|
|
|
// Récupérez l'ID du nouvel utilisateur
|
|
$userID = $pdo->lastInsertId();
|
|
|
|
// Connectez l'utilisateur
|
|
$_SESSION['userID'] = $userID;
|
|
$_SESSION['userName'] = $name;
|
|
$_SESSION['userDisplayName'] = $name;
|
|
$_SESSION['userRole'] = 'user';
|
|
$_SESSION['userAccreditation'] = null;
|
|
echo json_encode(['success' => true]);
|
|
}
|
|
} else {
|
|
echo json_encode(['success' => false]);
|
|
}
|
|
}
|
|
?>
|