setClientId('492430091865-vtggls1qrvs2snmeidp12gupsm964f4b.apps.googleusercontent.com'); $client->setClientSecret('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'); $client->setRedirectUri('https://e59.fr/login/google-callback.php'); if (isset($_GET['code'])) { $token = $client->fetchAccessTokenWithAuthCode($_GET['code']); $client->setAccessToken($token['access_token']); // Get user profile information $oauth2 = new Google_Service_Oauth2($client); $userinfo = $oauth2->userinfo->get(); $email = $userinfo->email; $name = $userinfo->name; // Convertir en minuscule et retirer les caractères spéciaux et les espaces $username = strtolower($name); $username = preg_replace('/[^a-z0-9]/', '', $username); // Établir la connexion à la base de données $pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlDatabasePass); // Vérifiez si l'utilisateur existe dans la base de données par email $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_start(); $_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']; } 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", $username); $insert->bindParam(":email", $email); $insert->bindParam(":display_name", $name); $insert->execute(); $from = "no-reply@e59.fr"; $fromName = "Association E59"; $to = "communication@e59.fr"; $subject = "Nouvel utilisateur"; $body = "$name a créé un compte sur e59.fr"; $altbody = "$name a créé un compte sur e59.fr"; sendMail($from, $fromName, $to, $subject, $body, $altbody); // Récupérez l'ID du nouvel utilisateur $userID = $pdo->lastInsertId(); // Connectez l'utilisateur session_start(); $_SESSION['userID'] = $userID; $_SESSION['userName'] = $username; $_SESSION['userDisplayName'] = $name; $_SESSION['userRole'] = 'user'; $_SESSION['userAccreditation'] = null; } // Redirection vers la page d'accueil ou une autre page header('Location: /'); exit(); } else { header('Location: /login'); exit(); } ?>