حل مشكلة Google Sign-In وأخطاء التوكن بسهولة

x32x01
  • بواسطة x32x01 ||
🚨 مشكلة Google Sign-In اللي ظهرت فجأة… وأنا والـ AI في معركة بقالها ساعات!
يا صاحبي، لو اشتغلت قبل كده على Google Sign-In أو أي نوع من أنواع الـ Authentication، أكيد عديت على لحظة اللي كل حاجة كانت ماشية زي الفل… وفجأة تلاقي الدنيا ولّعت والنظام مبقاش راضي يشتغل 😅🔥
وده بالظبط اللي حصل معايا.

كنت قاعد أنا والـ AI بنحاول نحل مشكلة ظهرت فجأة، من غير أي سبب واضح، مع Google Sign-In API.
ويا سلام بقى على اللحظات اللي الكود يبقى شغال امبارح، وتيجي النهارده تفتحه تلاقيه بيقولك:
“لأ.. مش هشتغل.. تعامل معايا بقى 😎”.

وهنا بدأت القصة 👇


😵 المحاولات اللي عملتها… واحدة ورا التانية​


👈 أول محاولة: أعمل Migrate لأحدث إصدار

قلت أجرب أحدث نسخة من المكتبة…
ما اشتغلش.

👈 تاني محاولة: أرجع الإصدار القديم

قلت أكيد المشكلة من التحديث…
رجعت للنسخة اللي كانت ماشية زمان…
بردو ما اشتغلش.

👈 تالت محاولة: أرجع Commit قديم من الكود

والله العظيم أول ما روحت Commit قديم…
الكود اشتغل زي السكر 😂
قلت خلاص يبقى المشكلة من تعديل اتعمل قريب.

👈 رابع محاولة: أخد نفس الكود اللي كان شغال وأنقله في المشروع الحالي

وقلت يلا بينا…
وبرضه…
ما اشتغلش 😅😂

وهنا بدأت الدراما الحقيقية.



😎 قررت أشغل تقيل… وناديت على Sonnet 4.5 Thinking​

قلت خلاص.. الموضوع كده محتاج heavyweight.
فتحت Sonnet 4.5 – Thinking mode
والراجل قعد يحلل ويجرب ويدوّر…
وكل محاولة تنتهي بـ:
"Still not working"
وأنا: 😐
وهو: 🤖
والكود: 😈
رغم كل ده.. مفيش فايدة.

لكن… فجأة حصلت حاجة مهمة.



🤯 لحظة الاكتشاف: "يا نهار أبيض.. ده Token غلط!"​

هو أثناء التفكير… رمى كده نص جملة ماخدتش بالي منها في الأول:
“There’s a difference between the token your old code sends and the token the new code sends.”
استنى كده؟
إيه ده؟
لقيت إن:
🔹 الـ Backend مستني AccessToken
🔹 وأنا ببعت idToken
وفجأة القطعة الناقصة من البازل ظهرت 😳🔥



🧪 تجربة سريعة… وتصحيح بسيط… وبوم! الكود اشتغل!​

روحت داخل على المكان اللي بيبعت الـ Token للسيرفر
وبالفعل…
لقيته بيبعت idToken بدل accessToken.
غيرت السطر…
عملت Build…
جربت…
🔥💥 التطبيق اشتغل زي الفل.. والعميل بقى مبسوط وأنا مبسوط والكون كله مبسوط 💙😎

الكود اللي كان عامل الأزمة كان بالشكل ده:

❌ الكود الغلط:
JavaScript:
const token = user.idToken;
sendToBackend(token);

✔️ الكود الصح:
JavaScript:
const token = user.accessToken;
sendToBackend(token);

فرق كلمة واحدة… ومشغلش الدنيا كلها!



🤖 طب إزاي الـ AI ساعدني رغم إنه “ما حلش المشكلة”؟​

ناس كتير فاكرة إن الـ AI لما ما يديكش حل نهائي يبقى كده “فشل”.
بس الحقيقة لا…
الذكاء الاصطناعي مش مطلوب منه يفكر بدالك، المطلوب منه يفكر معاك.

تعالى نحلل اللي حصل:

1️⃣ الـ AI لفت نظري لحاجة أنا مكنتش شايفها

لما قال إن الـ token اللي مبعوت دلوقتي غير اللي كان مبعوت زمان…
ده كان المفتاح الحقيقي.

2️⃣ الـ AI ساعدني أرتّب تفكيري

إني أديته:
  • نسخة للكود القديم
  • نسخة للكود الجديد
  • API Request
  • API Response
ده خلاني أنا نفسي أفهم المشكلة بعمق أكبر.

3️⃣ الـ AI مش لازم يحل… يكفي يفتحلك طريق الحل

في الآخر هو ما كتبليش الكود الصح…
بس قال الجملة اللي خلتني أربط كل حاجة ببعض.
وده بالظبط دور الـ AI في البرمجة.



🧠 ليه كتابة Prompt مظبوط بتوفر عليك ساعات؟​

في أول مرة… كنت بكلم الـ AI بسطحية شوية.
لكن لما فتحت Chat جديدة فيها Context جديد وكتبت له المشكلة بشكل:
  • أوضح
  • ملفات أكتر
  • خطوات جربتها
  • مثال للكود الشغال
  • مثال للكود اللي مش شغال
وقتها هو قدر يشوف الصورة كاملة.

وده درس مهم جدًا لأي مبرمج:

“كل ما الـ Prompt يبقى أدق… كل ما الـ AI يبقى أذكى”




🔍 مثال مبسط على Prompt ساعدني​

ده نموذج من طريقة الشرح اللي استخدمتها:
Code:
Here are two branches:
- branch_old: Google SignIn works
- branch_new: Google SignIn fails

Here are API Request & Response for each:
[REQUEST OLD]
[REQUEST NEW]

I need you to compare token types, parameters, headers,
and point out differences that may affect authentication.
الـ AI هنا مش بيخترع…
هو بيقرأ وبيقارن بمنطق.



🎯 الدرس الأهم: الـ AI مش بديل مهندس البرمجيات… لكنه أقوى مساعد ليه​

دي النقطة الأساسية اللي عايز أوصلها للناس:

🔥 الذكاء الاصطناعي مش مطلوب منه يحل بدالك…


🔥 المطلوب إنّه يحل معاك

لإن في الآخر:
إنت الـ Software Engineer
إنت اللي فاهم المشروع
إنت اللي شايف الصورة الكبيرة
مش هو.

ولو سيبته يكتب كود من غير ما تراجع…
أو من غير ما تفهم هو بيعمل إيه…
هتتوه أكتر.



🧠 طب ليه المبرمج لازم يراجع ويفهم مش بس “ياخد الكود ويحطه”؟​

✔️ لأن AI ساعات بيكتب كود سليم نظريًا… بس مش مناسب لحالتك
✔️ ساعات ما يعرفش كل Context
✔️ ساعات الـ Backend بتاعك ليه Logic مختلف
✔️ لازم تكون فاهم عشان تصلح لو حصل Bug تاني



⚙️ مثال صغير على خطأ AI ممكن يوقعك​

لو كتبتله: Fix Google SignIn
هيديك حل Generic…
مش مناسب لحالتك.

لكن لو كتبتله:
Code:
Compare old working token with new request.
Backend expects accessToken.
Current code sends idToken.
Suggest where the issue might be happening.
وقتها هيوصل للسبب أسرع.



💬 خلاصة الكلام​

الموضوع مش إن الـ AI يعوّضك…
الموضوع إنه يعززك.
✔️ إديه بيانات
✔️ اشرحله
✔️ راجع كلامه
✔️ اربط بين المعلومات
✔️ خليه أداة تفكير… مش بديل تفكير

وفي الآخر؟
هتطلع بحل أسرع، أذكى، وأدق من إنك تشتغل لوحدك.

🔥 رسالة أخيرة لكل مهندس برمجيات​

مهما الـ AI بقى قوي…
هيفضل محتاج مبرمج فاهم.
لإن الكود اللي على الشاشة… مش أكتر من نتيجة تفكيرك انت.
والـ AI مجرد Tool بتساعدك توصل للأحسن أسرع.
💙🔥
 
المواضيع ذات الصلة
x32x01
الردود
0
المشاهدات
516
x32x01
x32x01
x32x01
الردود
0
المشاهدات
70
x32x01
x32x01
x32x01
الردود
0
المشاهدات
75
x32x01
x32x01
x32x01
الردود
1
المشاهدات
573
x32x01
x32x01
x32x01
الردود
0
المشاهدات
291
x32x01
x32x01
الدخول أو التسجيل السريع
نسيت كلمة مرورك؟
إحصائيات المنتدى
المواضيع
2,083
المشاركات
2,288
أعضاء أكتب كود
511
أخر عضو
Abo Ali
عودة
أعلى