تسجيل الدخول من غوغل

عندما استلم التوكن الخاص واقوم بارسال طلب بيانات ما هي البيانات التي احصل عليها من غوغل وهل هي من اجل عمل log up ام من اجل log in

2 Likes

هل يجب ان اخزن البيانات القادمة من غوغل في قاعدة بياناتي
ام لا داعي
وكيف يمكن ان اخزن كلمة السر فلا احصل عليها

1 Like

نعم، يجب أن تخزن التوكن على قاعدة البيانات عندك (غالبا مكتبة جانقو تبع google oauth ستقوم بذلك)

إليك خطوات أي oauth التي يجب أن تمر بها:

1. يقوم اليوزر بطلب تسجيل الدخول.

2. يرسل المتصفح (browser) الطلب خاصتك إلى السيرفر.

3. يقوم السيرفر بعرض الـ authorization user interface (مثلا صفحة قوقل لتسجيل الدخول).

4. يملئ المستخدم البيانات ويرسلها، ويتحقق السيرفر authorization من بياناته.

تخزين التوكن لكي تتأكد أن اليوزر لن يملئ البيانات كل مرة يسجل فيها الدخول.

5. في حال نجاح العملية أو فشلها يرجع سيرفر authorization النتيجة على سيرفرك لكي تقوم أنت بالخطوة التالية (تسجيل دخول المستخدم أو رفضه).

هذه صورة توضح الخطوات كاملة

3 Likes

بعد أن ارسلت طلب لغوغل وقام بالتاكيد من المستخدم بعث لي في الرد رمز authCode
هذا الرمز اقوم ببعثه مع طلب بيانات المستخدم مرة أخرى وحينها أحصل في الرد على بيانات المستخدم؟؟؟
أليس كذلك؟
وبعدها ما هي البيانات التي سأحصل عليها من غوغل عن المستخدم؟

3 Likes

وهل أجعل الباك ايند ه من يخاطب عوعل ام اجعل الفرنت ايند هو من يخاطب عوعل؟

3 Likes

السلام عليكم أخي صهيب.
أحاول المساعدة بما فهمته فاعذرني إن قصرت (لم أستعمل ميزة الـ social auth من قبل :face_with_hand_over_mouth:) فهذا مجرد اجتهاد.

:ok_hand:

البيانات تجدها في الـ response الذي تتحصل عليه من google auth api مثلا في الـ js تشغل الـ method getBasicProfile() لترجع لك object يحتوي على مايلي:

  • ID
  • Full Name
  • Given Name
  • Family Name
  • Image URL
  • Email

يمكنك أن تخاطبه عند طريق الجافا سكريبت مثلا وبعدها تعمل post request للباكند لترسل هذه البيانات للسرفر ليقوم بعمله في تخزينها داخل user table بانشاء سجل جديد خاص بالمستخدم اذا كان أول مرة يعمل login مثلا

3 Likes

وحين نقوم بالتخزين في الباك ايند ما هي كلمة السر التي سنضعها؟؟
فهي ليست من ضمن البيانات

3 Likes

قوقل لا ترجع لك باسورد بحيث انه الحسابات الي يتم انشاءها بتكون بدون باسورد محددة من قوقل او المستخدم لذا الامر راجع لك لتوليد باسوردات عشوائية لهم.

فالمستخدم الذي يقوم بانشاء حساب باستخدام قوقل يتوقع منه ان يقوم بعمل تسجيل دخول باستخدام قوقل.

او تستطيع ارسال ايميل له بعد ان يقوم بعمل تسجيل، هذا الايميل يحتوي على رابط يقوم من خلاله بعمل reset للباسورد

3 Likes

هل اقوم بعمل كل هذا في الباك ايند django
ولا احتاج لعمل شيء في الفرنت ايند

3 Likes

اذا كنت تقصد التخزين في قاعدة بياناتك نعم، فبعد ارسال البيانات الى الباكند، تقوم باستقبالها من الـ views وتتأكد من أن المستخدم غير موجود سابقا وتنشئ user object من User model مثل user registration العادية

مادمت تستخدم الـ django اقترح عليك استعمال django-allauth لعمل تسجيل الدخول من google أو مواقع تواصل أخرى مثل الـ facebook دون الحاجة الى ال ـJS والتعامل مع الـ authentication من جهة الفرونت اند

هذا المقال يساعدك على تهيئة وتكويد تسجيل الدخول


وأيضا مقال عن كيفية عمل Custom User model وإضافة هذه المكتبة

3 Likes

شكرا لارا على جهودك

انا اعمل على api
django rest

3 Likes

هممممممممم
ببساطة حاولت إقحام نفسي بتقليد الأستاذ @YaserAlnajjar
في طريقة إجاباته الدقيقة، وأعتقد أنه مزال أمامي سنوات ضوئية لأصبح مثله :laughing:
سيتم طردي من الأكاديمية بعد هذا الكلام :pleading_face:

3 Likes

:sweat_smile::sweat_smile:
بالعكس جهودك رائعة واستجاباتك سريعة بالاضافة الى المحتوى المفيد الذي تضيفه للموضع.

:+1::+1:

3 Likes

الله يخليك أخي صهيب شكرا :blush:

3 Likes

فعلا يا لارا جهودك واجاباتك تستحقي عليها كل الشكر والتقدير… وكما تعرفي جميعنا ما زلنا وسنبقى نتعلم :wink:

1 Like