يمكنك دمج Firebase Authentication مع نظام مصادقة مخصّص من خلال تعديل خادم المصادقة لإنشاء رموز مميّزة مخصّصة وموقّعة عند تسجيل دخول المستخدم بنجاح. يتلقّى تطبيقك هذا الرمز المميز ويستخدمه للمصادقة مع Firebase.
قبل البدء
- أنشئ مشروع Firebase وسجِّل تطبيقك إذا لم يسبق لك إجراء ذلك.
-
استخدِم Swift Package Manager لتثبيت ملحقات Firebase وإدارتها.
- في Xcode، بعد فتح مشروع تطبيقك، انتقِل إلى ملف > إضافة حِزم (File > Add Packages).
- عندما يُطلب منك ذلك، أضِف مستودع حزمة تطوير البرامج (SDK) لمنصة Firebase Apple:
- اختَر مكتبة Firebase Authentication.
- أضِف العلامة
-ObjCإلى قسم علامات الربط الأخرى (Other Linker Flags) في إعدادات الإنشاء الخاصة بالهدف. - بعد الانتهاء، سيبدأ Xcode تلقائيًا في حلّ التبعيات وتنزيلها في الخلفية.
https://github.com/firebase/firebase-ios-sdk.git
- احصل على مفاتيح الخادم لمشروعك:
-
في وحدة تحكّم Firebase، انتقِل إلى علامة التبويب
الإعدادات > حسابات الخدمة. - في أسفل قسم Firebase Admin SDK، انقر على إنشاء مفتاح خاص جديد.
- يتم تلقائيًا حفظ زوج المفتاح العام/الخاص لحساب الخدمة الجديد على جهاز الكمبيوتر. انسخ هذا الملف إلى خادم المصادقة.
-
في وحدة تحكّم Firebase، انتقِل إلى علامة التبويب
المصادقة باستخدام Firebase
- استورِد الوحدة
FirebaseCoreفيUIApplicationDelegate، بالإضافة إلى أي وحدات Firebase أخرى يستخدمها مفوّض تطبيقك. على سبيل المثال، لاستخدام Cloud Firestore وAuthentication:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- اضبط مثيلاً مشتركًا
FirebaseAppفي طريقةapplication(_:didFinishLaunchingWithOptions:)الخاصة بمندوب تطبيقك:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- إذا كنت تستخدم SwiftUI، عليك إنشاء مفوّض تطبيق وإرفاقه بفئة
Appمن خلالUIApplicationDelegateAdaptorأوNSApplicationDelegateAdaptor. يجب أيضًا إيقاف عملية استبدال وظائف تفويض التطبيق. لمزيد من المعلومات، راجِع تعليمات SwiftUI.SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
- عندما يسجّل المستخدمون الدخول إلى تطبيقك، أرسِل بيانات اعتماد تسجيل الدخول (مثل اسم المستخدم وكلمة المرور) إلى خادم المصادقة. يتحقّق الخادم من بيانات الاعتماد ويعرض رمزًا مميزًا مخصّصًا إذا كانت صالحة.
- بعد تلقّي الرمز المميّز المخصّص من خادم المصادقة، مرِّره إلى
signInWithCustomTokenلتسجيل دخول المستخدم:Swift
Auth.auth().signIn(withCustomToken: customToken ?? "") { user, error in // ... }
Objective-C
[[FIRAuth auth] signInWithCustomToken:customToken completion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
الخطوات التالية
بعد تسجيل المستخدم الدخول لأول مرة، يتم إنشاء حساب مستخدم جديد وربطه ببيانات الاعتماد، أي اسم المستخدم وكلمة المرور أو رقم الهاتف أو معلومات مقدّم خدمة المصادقة التي سجّل المستخدم الدخول بها. يتم تخزين هذا الحساب الجديد كجزء من مشروع Firebase، ويمكن استخدامه لتحديد هوية المستخدم على مستوى كل تطبيق في مشروعك، بغض النظر عن طريقة تسجيل الدخول.
-
في تطبيقاتك، يمكنك الحصول على معلومات الملف الشخصي الأساسية للمستخدم من عنصر
User. راجِع إدارة المستخدمين. في Firebase Realtime Database وCloud Storage قواعد الأمان، يمكنك الحصول على معرّف المستخدِم الفريد للمستخدِم الذي سجّل الدخول من المتغيّر
auth، واستخدامه للتحكّم في البيانات التي يمكن للمستخدِم الوصول إليها.
يمكنك السماح للمستخدمين بتسجيل الدخول إلى تطبيقك باستخدام العديد من موفّري المصادقة من خلال ربط بيانات اعتماد موفّر المصادقة بحساب مستخدم حالي.
لتسجيل خروج مستخدم، اتّصِل بالرقم
signOut:.
Swift
let firebaseAuth = Auth.auth() do { try firebaseAuth.signOut() } catch let signOutError as NSError { print("Error signing out: %@", signOutError) }
Objective-C
NSError *signOutError; BOOL status = [[FIRAuth auth] signOut:&signOutError]; if (!status) { NSLog(@"Error signing out: %@", signOutError); return; }
يمكنك أيضًا إضافة رمز معالجة الأخطاء لنطاق أخطاء المصادقة الكامل. يُرجى الاطّلاع على التعامل مع الأخطاء.