أنواع بيانات الاعتماد
device_id وemail وgoogle وapple وfacebook وsteam وdiscord. ويمكن للاعب أن يحمل
واحدًا من كل نوع على الأكثر — فربط حساب Google ثانٍ باللاعب نفسه يُرفض بدل أن يحلّ محلّ الأول
بصمت.
- Unity
يقع الربط في مزوّد المصادقة إلى جانب استدعاءات تسجيل الدخول، وكل دالة منه تتطلّب لاعبًا
مسجَّل الدخول.وهناك دالة لكل مزوّد — ولا تُخزَّن حالة بيانات الاعتماد مؤقتًا ولا تُصفّ في طابور عند انقطاع الاتصال — فهي حالة
أمنية، والإجابة القديمة فيها أسوأ من عدم الإجابة. وكل استدعاء يذهب إلى الخادم.
LinkEmailAsync وLinkDeviceAsync وLinkGoogleAsync
وLinkAppleAsync وLinkFacebookAsync وLinkSteamAsync وLinkDiscordAsync — وكل منها يأخذ
الرمز نفسه الذي يحصل عليه مسار تسجيل الدخول من تلك المنصّة. أما UnlinkAsync فتأخذ
FlockCredentialProvider بدلًا من ذلك.وكل واحدة من هذه الدوال تُعيد قائمة بيانات الاعتماد كاملةً بعد التحديث، فيؤدّي الربط
وفكّه دور التحديث أيضًا — ونادرًا ما تحتاج إلى استدعاء GetLinkedAccountsAsync مرة أخرى
مباشرةً بعدها.ويحمل كل PlayerLinkedAccount الحقول Provider وProviderUserId وEmail وEmailVerified.أخطاء يستحقّ التعامل معها بالاسم:لا يوجد مسار لدمج الحسابات. فإن كانت بيانات الاعتماد تخصّ لاعبًا آخر، يفشل الربط
بالرمز
PlayerAccountAlreadyLinked — ولن تدمج Flock تقدّم لاعبَين معًا، إذ لا توجد إجابة
عامة آمنة عن أيّ الحفظَين يفوز. قرّر داخل لعبتك ما الذي تعرضه: الإبقاء على الحساب الحالي،
أو تسجيل الخروج والدخول إلى الآخر.إعادة تعيين كلمة المرور ببريد مرتبط
تعملResetPasswordAsync مع اللاعب الذي سجّل دخوله ببريد إلكتروني، وكذلك مع من ربط بريدًا
إلكترونيًا خلال الجلسة الحالية.
وتعرف حزمة التطوير ما هو مرتبط من قائمة بيانات الاعتماد، وهي لا تحفظ ذلك عمدًا بين عمليات
التشغيل. لذا بعد استعادة جلسة، استدعِ GetLinkedAccountsAsync() مرة واحدة قبل عرض إعادة تعيين
كلمة المرور — وإلا فلن تعلم حزمة التطوير بعدُ أن لدى اللاعب بريدًا يمكن إعادة تعيينه.
ربط الحسابات متاح في حزمة Unity. أما دعم Unreal فغير متاح بعد.