41 lines
1.5 KiB
PHP
Executable File
41 lines
1.5 KiB
PHP
Executable File
<?php
|
|
// File: start_login.php
|
|
// هذا الملف يبدأ عملية تسجيل الدخول.
|
|
// يقوم بإنشاء معرف فريد ورابط تسجيل الدخول وإرسالهم للتطبيق.
|
|
|
|
// 1. الإعدادات
|
|
$clientID = '1086900987150-j8brn0i5s97315kh1ej9jr72grkfqgh5.apps.googleusercontent.com';
|
|
$redirectUri = 'https://api.tripz-egypt.com/tripz/auth/google_auth/callback.php';
|
|
$scopes = 'email profile';
|
|
|
|
// 2. إنشاء معرف فريد للجلسة (login token)
|
|
$loginToken = bin2hex(random_bytes(24));
|
|
|
|
// 3. إنشاء مجلد لتخزين الجلسات المؤقتة إذا لم يكن موجوداً
|
|
$pollDir = __DIR__ . '/polls';
|
|
if (!is_dir($pollDir)) {
|
|
mkdir($pollDir, 0775, true);
|
|
}
|
|
|
|
// 4. إنشاء ملف مؤقت لهذه الجلسة
|
|
$sessionFile = $pollDir . '/' . $loginToken . '.json';
|
|
file_put_contents($sessionFile, json_encode(['status' => 'pending']));
|
|
|
|
// 5. بناء رابط جوجل مع تمرير المعرف الفريد في متغير 'state'
|
|
$authUrl = 'https://accounts.google.com/o/oauth2/v2/auth?' . http_build_query([
|
|
'client_id' => $clientID,
|
|
'redirect_uri' => $redirectUri,
|
|
'response_type' => 'code',
|
|
'scope' => $scopes,
|
|
'access_type' => 'offline',
|
|
'state' => $loginToken // مهم جداً
|
|
]);
|
|
|
|
// 6. إرجاع الرابط والمعرف للتطبيق
|
|
header('Content-Type: application/json');
|
|
echo json_encode([
|
|
'authUrl' => $authUrl,
|
|
'loginToken' => $loginToken
|
|
]);
|
|
exit();
|
|
?>
|