Catch up on everthing we announced at this year's Firebase Summit. Learn more

ตรวจสอบสิทธิ์ด้วย Firebase บนแพลตฟอร์ม Apple โดยใช้ระบบตรวจสอบสิทธิ์แบบกำหนดเอง

คุณสามารถผสานรวมการตรวจสอบสิทธิ์ของ Firebase กับระบบการตรวจสอบสิทธิ์ที่กำหนดเองโดยแก้ไขเซิร์ฟเวอร์การตรวจสอบสิทธิ์เพื่อสร้างโทเค็นที่ลงชื่อแบบกำหนดเองเมื่อผู้ใช้ลงชื่อเข้าใช้สำเร็จ แอปของคุณจะได้รับโทเค็นนี้และใช้เพื่อรับรองความถูกต้องกับ Firebase

ก่อนจะเริ่ม

ใช้ Swift Package Manager เพื่อติดตั้งและจัดการการพึ่งพา Firebase

  1. ใน Xcode กับโครงการของคุณเปิดแอปนำทางไปยังไฟล์> สวิฟท์แพคเกจ> เพิ่มแพคเกจการพึ่งพา
  2. เมื่อได้รับแจ้ง ให้เพิ่มที่เก็บ SDK ของแพลตฟอร์ม Firebase Apple:
  3.   https://github.com/firebase/firebase-ios-sdk
      
  4. เลือกไลบรารีการตรวจสอบสิทธิ์ Firebase
  5. เมื่อเสร็จแล้ว Xcode จะเริ่มแก้ไขและดาวน์โหลดการพึ่งพาของคุณในเบื้องหลังโดยอัตโนมัติ

ถัดไป ดำเนินการตามขั้นตอนการกำหนดค่า:

  1. รับคีย์เซิร์ฟเวอร์ของโครงการของคุณ:
    1. ไปที่ บริการบัญชี หน้าในการตั้งค่าของโครงการ
    2. คลิกสร้างคีย์ส่วนตัวใหม่ที่ด้านล่างของส่วน Firebase SDK ผู้ดูแลระบบของหน้าบัญชีบริการ
    3. คู่คีย์สาธารณะ/ส่วนตัวของบัญชีบริการใหม่จะถูกบันทึกไว้ในคอมพิวเตอร์ของคุณโดยอัตโนมัติ คัดลอกไฟล์นี้ไปยังเซิร์ฟเวอร์การตรวจสอบสิทธิ์ของคุณ

ตรวจสอบสิทธิ์ด้วย Firebase

  1. นำเข้าโมดูล Firebase ในของคุณ UIApplicationDelegate :

    Swift

    import Firebase

    วัตถุประสงค์-C

    @import Firebase;
  2. กำหนดค่า FirebaseApp ที่ใช้ร่วมกันเช่นปกติในของแอป application:didFinishLaunchingWithOptions: วิธีการ:

    Swift

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    วัตถุประสงค์-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. เมื่อผู้ใช้ลงชื่อเข้าใช้แอปของคุณ ให้ส่งข้อมูลรับรองการลงชื่อเข้าใช้ (เช่น ชื่อผู้ใช้และรหัสผ่าน) ไปยังเซิร์ฟเวอร์การตรวจสอบสิทธิ์ของคุณ ตรวจสอบเซิร์ฟเวอร์ของคุณสิทธิและผลตอบแทน ที่กำหนดเอง token หากพวกเขาเป็นที่ถูกต้อง
  4. หลังจากที่คุณได้รับการกำหนดเอง token จากเซิร์ฟเวอร์การตรวจสอบสิทธิ์ของคุณผ่านไป signInWithCustomToken เพื่อเข้าสู่ระบบของผู้ใช้:

    Swift

    Auth.auth().signIn(withCustomToken: customToken ?? "") { user, error in
      // ...
    }

    วัตถุประสงค์-C

    [[FIRAuth auth] signInWithCustomToken:customToken
                               completion:^(FIRAuthDataResult * _Nullable authResult,
                                            NSError * _Nullable error) {
      // ...
    }];

ขั้นตอนถัดไป

หลังจากที่ผู้ใช้ลงชื่อเข้าใช้เป็นครั้งแรก บัญชีผู้ใช้ใหม่จะถูกสร้างขึ้นและเชื่อมโยงกับข้อมูลประจำตัว กล่าวคือ ชื่อผู้ใช้และรหัสผ่าน หมายเลขโทรศัพท์ หรือข้อมูลผู้ให้บริการตรวจสอบสิทธิ์ ซึ่งผู้ใช้ลงชื่อเข้าใช้ บัญชีใหม่นี้จัดเก็บเป็นส่วนหนึ่งของโปรเจ็กต์ Firebase และสามารถใช้ระบุผู้ใช้ในทุกแอปในโปรเจ็กต์ของคุณ ไม่ว่าผู้ใช้จะลงชื่อเข้าใช้ด้วยวิธีใดก็ตาม

  • ในปพลิเคชันของคุณคุณจะได้รับข้อมูลรายละเอียดของผู้ใช้พื้นฐานจาก FIRUser วัตถุ ดู การจัดการผู้ใช้

  • ในฐานข้อมูล Firebase เรียลไทม์และการจัดเก็บเมฆ กฎการรักษาความปลอดภัย , คุณจะได้รับการลงนามใน ID ผู้ใช้ของผู้ใช้ที่ไม่ซ้ำกันจาก auth ตัวแปรและใช้ในการควบคุมสิ่งที่ข้อมูลที่เข้าถึงผู้ใช้สามารถ

คุณสามารถอนุญาตให้ผู้ใช้สามารถลงชื่อเข้าใช้แอปโดยใช้ผู้ให้บริการการตรวจสอบหลายคนโดย การเชื่อมโยงข้อมูลประจำตัวของผู้ให้บริการรับรองความถูกต้องไปยังบัญชีผู้ใช้ที่มีอยู่

ออกจากระบบผู้ใช้โทร signOut:

Swift

    let firebaseAuth = Auth.auth()
do {
  try firebaseAuth.signOut()
} catch let signOutError as NSError {
  print("Error signing out: %@", signOutError)
}
  

วัตถุประสงค์-C

    NSError *signOutError;
BOOL status = [[FIRAuth auth] signOut:&signOutError];
if (!status) {
  NSLog(@"Error signing out: %@", signOutError);
  return;
}

คุณอาจต้องการเพิ่มรหัสการจัดการข้อผิดพลาดสำหรับข้อผิดพลาดในการตรวจสอบสิทธิ์ทั้งหมด ดู ข้อผิดพลาดที่จับ