يمكنك دمج مصادقة Firebase مع نظام مصادقة مخصّص من خلال تعديل خادم المصادقة لإنتاج رموز مميّزة موقَّعة ومخصّصة عند تسجيل المستخدم الدخول بنجاح. يتلقّى تطبيقك هذا الرمز المميّز ويستخدمه للمصادقة مع Firebase.
قبل البدء
- أنشئ مشروعًا على Firebase وسجِّل تطبيقك إذا لم يسبق لك إجراء ذلك.
-
يمكنك استخدام "مدير حزم Swift" لتثبيت اعتماديات Firebase وإدارتها.
- في Xcode، بعد فتح مشروع تطبيقك، انتقِل إلى File > Add Packages (ملف > إضافة حِزم).
- أضِف مستودع حزمة تطوير البرامج (SDK) لمنصّات Firebase Apple عندما يُطلب منك ذلك:
- اختر مكتبة مصادقة Firebase.
- أضِف العلامة
-ObjC
إلى القسم علامات الروابط الأخرى في إعدادات إصدار هدفك. - عند الانتهاء، ستبدأ خدمة Xcode تلقائيًا في حلّ المشاكل المتعلّقة بالعناصر التي تعتمد عليها وتنزيلها في الخلفية.
https://github.com/firebase/firebase-ios-sdk.git
- احصل على مفاتيح خادم مشروعك:
- انتقِل إلى صفحة حسابات الخدمة في إعدادات مشروعك.
- انقر على إنشاء مفتاح خاص جديد أسفل قسم حزمة تطوير البرامج (SDK) لمشرف Firebase من صفحة حسابات الخدمة.
- ويتم حفظ مفتاحَي التشفير العام/الخاص لحساب الخدمة الجديد تلقائيًا على جهاز الكمبيوتر. انسخ هذا الملف إلى خادم المصادقة.
المصادقة باستخدام Firebase
- يمكنك استيراد وحدة
FirebaseCore
فيUIApplicationDelegate
، بالإضافة إلى أي وحدات Firebase أخرى يستخدمها المستخدم المفوَّض في تطبيقك. على سبيل المثال، لاستخدام Cloud Firestore والمصادقة:واجهة المستخدم
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:)
الخاصة بمفوَّض تطبيقك:واجهة المستخدم
// 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.واجهة المستخدم
@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 في الوقت الفعلي وقواعد أمان 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; }
يمكنك أيضًا إضافة رمز معالجة الأخطاء إلى المجموعة الكاملة من أخطاء المصادقة. يُرجى الاطّلاع على التعامل مع الأخطاء.