Mengintegrasikan Google Sign-In ke dalam aplikasi iOS Anda

Halaman ini menunjukkan cara mengintegrasikan Google Sign-In ke dalam aplikasi iOS berdasarkan UIKit dan siklus hidup UIApplicationDelegate . Jika aplikasi Anda berbasis adegan atau menggunakan SwiftUI, Anda perlu menyesuaikan instruksi ini dengan siklus hidup pilihan Anda.

Sebelum kamu memulai

Unduh dependensi dan konfigurasikan proyek Xcode Anda .

1. Konfigurasikan perpustakaan Google Sign-In

  1. Buat objek GIDConfiguration menggunakan ID klien yang Anda buat saat menyelesaikan langkah-langkah memulai . Anda dapat melakukan ini di mana pun Anda mempertahankan status konfigurasi aplikasi, seperti objek tunggal.

    Cepat

    let signInConfig = GIDConfiguration.init(clientID: "YOUR_IOS_CLIENT_ID")
    

    Objective-C

    signInConfig = [[GIDConfiguration alloc] initWithClientID:@"YOUR_IOS_CLIENT_ID"];
    

    Jika Anda perlu mendapatkan token ID pengguna untuk autentikasi backend , setel juga parameter serverClientID . Jika Anda ingin mengoptimalkan alur masuk untuk domain Google Workspace, atau jika Anda ingin menentukan ranah OpenID, Anda dapat menggunakan hostedDomain dan openIDRealm parameter masing-masing.

  2. Dalam metode application:openURL:options AppDelegate Anda, panggil metode GIDSignIn 's handleURL: ::

    Cepat

    func application(
      _ app: UIApplication,
      open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]
    ) -> Bool {
      var handled: Bool
    
      handled = GIDSignIn.sharedInstance.handle(url)
      if handled {
        return true
      }
    
      // Handle other custom URL types.
    
      // If not handled by this app, return false.
      return false
    }
    

    Objective-C

    - (BOOL)application:(UIApplication *)app
                openURL:(NSURL *)url
                options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
      BOOL handled;
    
      handled = [GIDSignIn.sharedInstance handleURL:url];
      if (handled) {
        return YES;
      }
    
      // Handle other custom URL types.
    
      // If not handled by this app, return NO.
      return NO;
    }
    

2. Mencoba memulihkan status masuk pengguna

Saat aplikasi Anda dimulai, panggil restorePreviousSignInWithCallback untuk mencoba dan memulihkan status masuk pengguna yang sudah masuk menggunakan Google. Melakukannya memastikan pengguna tidak perlu masuk setiap kali mereka membuka aplikasi Anda (kecuali mereka sudah keluar).

Aplikasi sering melakukan ini dalam metode AppDelegate application:didFinishLaunchingWithOptions: dan menggunakan hasilnya untuk menentukan tampilan mana yang akan ditampilkan kepada pengguna. Sebagai contoh:

Cepat

func application(
  _ application: UIApplication,
  didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
  GIDSignIn.sharedInstance.restorePreviousSignIn { user, error in
    if error != nil || user == nil {
      // Show the app's signed-out state.
    } else {
      // Show the app's signed-in state.
    }
  }
  return true
}

Objective-C

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [GIDSignIn.sharedInstance restorePreviousSignInWithCallback:^(GIDGoogleUser * _Nullable user,
                                                                NSError * _Nullable error) {
    if (error) {
      // Show the app's signed-out state.
    } else {
      // Show the app's signed-in state.
    }
  }];
  return YES;
}

3. Tambahkan tombol Masuk Google

  1. Tambahkan tombol "Masuk dengan Google" ke Tampilan masuk Anda. Anda dapat menggunakan kelas GIDSignInButton untuk membuat tombol secara otomatis dengan merek Google (disarankan) atau membuat tombol Anda sendiri dengan gaya khusus.

    Untuk menambahkan GIDSignInButton ke storyboard atau file XIB, tambahkan View dan setel kelas GIDSignInButton ke GIDSignInButton . Perhatikan bahwa saat Anda menambahkan Tampilan GIDSignInButton ke storyboard Anda, tombol masuk tidak dirender di pembuat antarmuka. Jalankan aplikasi untuk melihat tombol masuk.

    Anda dapat menyesuaikan tampilan GIDSignInButton dengan mengatur colorScheme dan properti style :

    Properti gaya GIDSignInButton
    colorScheme kGIDSignInButtonColorSchemeLight
    kGIDSignInButtonColorSchemeDark
    style kGIDSignInButtonStyleStandard
    kGIDSignInButtonStyleWide
    kGIDSignInButtonStyleIconOnly
  2. Hubungkan tombol ke metode di ViewController Anda yang memanggil signInWithConfiguration: , meneruskan objek konfigurasi yang Anda buat di langkah 1. Misalnya, gunakan IBAction :

    Cepat

    @IBAction func signIn(sender: Any) {
      GIDSignIn.sharedInstance.signIn(with: signInConfig, presenting: self) { user, error in
        guard error == nil else { return }
    
        // If sign in succeeded, display the app's main content View.
      }
    }
    

    Objective-C

    - (IBAction)signIn:(id)sender {
      [GIDSignIn.sharedInstance signInWithConfiguration:signInConfig
                               presentingViewController:self
                                               callback:^(GIDGoogleUser * _Nullable user,
                                                          NSError * _Nullable error) {
        if (error) {
          return;
        }
    
        // If sign in succeeded, display the app's main content View.
      }];
    }
    

4. Tambahkan tombol keluar

  1. Tambahkan tombol keluar ke aplikasi Anda, yang dapat dilihat oleh pengguna yang masuk.

  2. Hubungkan tombol ke metode di ViewController Anda yang memanggil signOut: . Misalnya, gunakan IBAction :

    Cepat

    @IBAction func signOut(sender: Any) {
      GIDSignIn.sharedInstance.signOut()
    }
    

    Objective-C

    - (IBAction)signOut:(id)sender {
      [GIDSignIn.sharedInstance signOut];
    }
    

Langkah selanjutnya

Setelah pengguna dapat masuk ke aplikasi Anda menggunakan Akun Google mereka, pelajari cara: