الانتقال إلى المحتوى الرئيسي
للمصادقة في Flock طبقتان، وتتولّى حزمة التطوير كلتيهما:
  1. اللعبة — تصادق الحزمة لعبتك ببيانات الاعتماد التي تضبطها مرة واحدة: مفتاح الواجهة البرمجية، وأيّ لعبة هي، وإصدار اللعبة. ويُعرَّف بعدها كل طلب ترسله على أنه صادر عن لعبتك.
  2. اللاعب — يسجّل اللاعبون الدخول عبر الحزمة، ثم تدير هي جلساتهم تلقائيًا طوال اللعب.

اضبط لعبتك

اضبط بيانات اعتمادك في إعدادات محرّكك. ويتولّى المحرّر استخراج إصدار لعبتك، وهو ما تحتاجه الحزمة قبل أن تبدأ، ويمكنه أيضًا التحقّق من الاتصال لك (وهو فحص اختياري).
تقع بيانات الاعتماد في Flock → Settings، تبويب Configuration: ‏Api Url وApi Key وGame Name (اسم لعبتك من لوحة التحكم) وGame Version — راجع إعداد Unity.ومع Auto-Initialize On Load تصادق الحزمة لعبتك عند بدء التشغيل؛ أطفئه لتتولّى التهيئة بنفسك. وتصل إلى كل شيء عبر FlockClient.Instance.

سجّل دخول لاعب

يسجّل اللاعبون الدخول بإحدى طرائق عدّة، وكلها تؤول إلى حساب اللاعب نفسه، وتبقيهم الحزمة بعدها مسجَّلي الدخول.
كل طريقة استدعاء LoginWith…Async على FlockClient.Instance.Authentication. وجميعها ترمي استثناء FlockException عند الفشل، فغلّفها بـtry/catch لتمنح بيانات الاعتماد الخاطئة أو انقطاع الشبكة مسار إعادة محاولة نظيفًا. وتعمل الأمثلة داخل دالة async؛ وemail وpassword وidToken قيمك أنت. ودون معرّف، تستعمل استدعاءات الجهاز معرّف الجهاز الذي تصنعه الحزمة في أول تشغيل وتحفظه لهذا التثبيت؛ ويبيّن أول استدعاء لك متى تمرّر معرّفك الخاص.
وفي طرائق المنصّات تستبدل الحزمة بيان اعتماد سبق أن أنتجته حزمة تطوير المنصة لديك؛ فهي لا تحصل عليه نيابةً عنك. تتطلّب Google رمز هوية (ID token)، وApple رمز هوية (identity token)، وSteam تذكرة جلسة (session ticket)، وFacebook وDiscord رمز وصول (access token). وFacebook وDiscord للدخول فقط: ليس لهما RegisterWith…Async، فيجب أن يكون حساب اللاعب موجودًا وذلك الحساب مربوطًا به (ربط الحسابات).سجّل الدخول مرّة واحدة. يُحفظ تسجيل الدخول على الجهاز ويُستعاد مع بدء الحزمة، فتحقّق أولًا هل هناك لاعب مسجَّل الدخول بالفعل (FlockClient.Instance.IsAuthenticated، بعد أن تصبح قيمة FlockClient.IsRestoringSession هي false) وسجّل الدخول فقط إن لم يكن أحد.وإنشاء الحساب استدعاء منفصل. فتسجيل الدخول لا يُنشئ حسابًا أبدًا، ويحتاج اللاعب الجديد إلى RegisterWith…Async أوّلًا. والتسجيل الناجح يُدخل اللاعب أيضًا، فلا يتبعه استدعاء تسجيل دخول في المسار الطبيعي.وتسجيل هوية لها حساب بالفعل ليس خطأً — إذ يُعيد الاستدعاء null ويترك اللاعب خارج الجلسة، فأتبِع تلك الحالة بتسجيل دخول. ودخول الجهاز بلا شاشة حساب يسجّل الدخول أولًا، ولا يسجّل الجهاز إلا إن لم يكن له حساب بعد:
وبعد ذلك اقرأ FlockClient.Instance.CurrentPlayerId. ولتتفاعل أيًّا كان مصدر الدخول (تسجيل دخول، أو تسجيل، أو دخول استُعيد عند البدء)، تعامَل مع FlockEvents.OnAuthenticated: يأخذ معالجه FlockAuthInfo (‏PlayerId، وMethod من نوع FlockAuthMethod). وتعامَل مع OnAuthExpired لتعيد إدخال اللاعب حين لا يعود تسجيل الدخول المحفوظ قابلًا للتجديد:
أتختار اسمًا معروضًا؟ تحقّق أولًا من أنه متاح — وهو تحقّق استرشادي، إذ يمكن أن يحجزه لاعب آخر في أثناء ذلك:

إعادة تعيين كلمة المرور

لحسابات البريد الإلكتروني وكلمة المرور، تدفّق من خطوتين برمز يُرسَل بالبريد. والاستدعاء الأول ينجح دائمًا — فهو لا يكشف قط ما إذا كان البريد مسجَّلًا. وتعمل إعادة التعيين دون تسجيل دخول: فالبريد والرمز المُرسَل إليه يحدّدان الحساب، فيستطيع اللاعب الذي لا يقدر على تسجيل الدخول أن يعيد تعيين كلمة المرور من شاشة تسجيل الدخول في لعبتك.
يعمل هذا داخل دالة async؛ وتأتي email وcode وnewPassword من شاشاتك أنت.

التحقّق من البريد الإلكتروني

اختياري، ويقوم على رمز، ويبقى تحت سيطرتك دائمًا — فالحزمة لا ترسل رسائل تحقّق من تلقاء نفسها. ويُستعمل عادةً واللاعب مسجَّل الدخول (إذ تُرفَق جلسته تلقائيًا)، لكن أيًّا من الاستدعاءين لا يتوقّف على ذلك.
يعمل هذا داخل دالة async؛ وcode هو الرمز الذي كتبه اللاعب من البريد.

تسجيل الخروج

يمسح Logout الجلسة على الجهاز — وهو تسجيل الخروج المعتاد من جهة العميل. أما في الأجهزة المشتركة أو عند اختراق جلسة، فإن الإبطال يقتل جلسة اللاعب من جهة الخادم أيضًا، فيتوقّف رمز الجلسة المسروق عن العمل. وإيقاف حزمة التطوير ليس تسجيل خروج: يبقى تسجيل الدخول المحفوظ على الجهاز، ويستعيد التشغيل التالي اللاعب نفسه.
يعمل هذا داخل دالة async.

الجلسات مُدارة نيابةً عنك

جلسات اللاعبين قصيرة العمر خلف الكواليس، لكن حزمة التطوير تجدّدها تلقائيًا — فلا داعي لأن تفكّر في الرموز أو في انتهاء صلاحيتها. وإن احتاج لاعب إلى تسجيل الدخول من جديد، أطلقت الحزمة الحدث OnAuthExpired على مركز أحداثها (وفي Unreal، اربطه كما في سجّل دخول لاعب).