appleid
Thu Sep 19 2024 20:16:29 GMT+0000 (Coordinated Universal Time)
Saved by @mebean #flutter #laravel #api #http #2lancer
<?php // تأكد من تثبيت مكتبة apple-signin-php باستخدام Composer require_once 'vendor/autoload.php'; use AppleSignIn\ASDecoder; // إعدادات قاعدة البيانات $servername = "localhost"; $username = "nullsafety_app"; $password = "gQ0T(DHze!5L"; $dbname = "nullsafety_app"; // إعدادات Apple Sign In $LOGIN_APPLE_CLIENT_ID = "io.fitness.club"; $LOGIN_APPLE_SECRET = "eyJraWQiOiJMQ1hESDJSTDJSIiwiYWxnIjoiRVMyNTYifQ.eyJpc3MiOiI2TFRESjJITldZIiwiaWF0IjoxNjk3MTQ2MDU2LCJleHAiOjE3MTI2OTgwNTYsImF1ZCI6Imh0dHBzOi8vYXBwbGVpZC5hcHBsZS5jb20iLCJzdWIiOiJpby5maXRuZXNzLmNsdWIifQ.D4YPbDBiRv76ToNUa9Lll1F82uohsgIUzIN4x-NBNahfZuC_A8LTNzFuaBDCBp4m5ohPa9eTc2xoK4NRJjWJWA"; // إنشاء اتصال $conn = new mysqli($servername, $username, $password, $dbname); // التحقق من الاتصال if ($conn->connect_error) { die("فشل الاتصال: " . $conn->connect_error); } if ($_SERVER['REQUEST_METHOD'] === 'POST') { // استلام البيانات من Apple $id_token = $_POST['id_token']; try { // فك تشفير وتحقق من الـ token $appleSignInPayload = ASDecoder::getAppleSignInPayload($id_token); // استخراج معلومات المستخدم $email = $appleSignInPayload->getEmail(); $user_id = $appleSignInPayload->getUser(); // الاسم غير متوفر دائمًا، لذا نحتاج للتحقق $name = isset($_POST['user']) ? json_decode($_POST['user'])->name : null; // التحقق مما إذا كان المستخدم موجودًا بالفعل $stmt = $conn->prepare("SELECT id FROM users WHERE apple_id = ?"); $stmt->bind_param("s", $user_id); $stmt->execute(); $result = $stmt->get_result(); if ($result->num_rows > 0) { // المستخدم موجود بالفعل، قم بتحديث المعلومات إذا لزم الأمر $stmt = $conn->prepare("UPDATE users SET email = ?, name = ? WHERE apple_id = ?"); $stmt->bind_param("sss", $email, $name, $user_id); } else { // مستخدم جديد، قم بإدراجه في قاعدة البيانات $stmt = $conn->prepare("INSERT INTO users (apple_id, email, name) VALUES (?, ?, ?)"); $stmt->bind_param("sss", $user_id, $email, $name); } if ($stmt->execute()) { echo "تم تسجيل الدخول وحفظ البيانات بنجاح!"; } else { echo "حدث خطأ أثناء حفظ البيانات: " . $stmt->error; } } catch (Exception $e) { echo "حدث خطأ: " . $e->getMessage(); } } $conn->close(); ?> <!DOCTYPE html> <html> <head> <title>تسجيل الدخول باستخدام Apple</title> </head> <body> <div id="appleid-signin" data-color="black" data-border="true" data-type="sign in"></div> <script type="text/javascript" src="https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js"></script> <script type="text/javascript"> AppleID.auth.init({ clientId : '<?php echo $LOGIN_APPLE_CLIENT_ID; ?>', scope : 'name email', redirectURI : 'https://developer.null-safety.com/', state : 'YOUR_STATE_VALUE' }); </script> </body> </html>
Comments