Masuk Dengan Apple — terapkan di aplikasi Anda!

Diterbitkan: 2020-01-14

Masuk Dengan Apple — fitur baru yang dihadirkan Apple di WWDC tahun lalu, kini tersedia dari iOS 13. Fitur ini menawarkan pendaftaran akun dan login yang sederhana dan aman di aplikasi atau situs web. Alih-alih mengisi formulir pendaftaran atau masuk melalui media sosial, Anda sekarang dapat membuat akun dan masuk dengan ID Apple Anda dan memverifikasi dengan ID Wajah, ID Sentuh, atau kode sandi.

Deskripsi singkat tentang Masuk Dengan Apple:

  • Penyiapan akun dan masuk yang cepat dan mudah
  • Alamat email terverifikasi
  • Keamanan Terbina
  • Anti penipuan
  • Lintas platform ️
  • iOS 13+

Pada artikel ini, saya akan fokus pada implementasi dasar Sign In With Apple di perangkat iOS tanpa integrasi dengan versi web atau integrasi dengan back-end.

Bagaimana cara kerja fitur "Masuk Dengan Apple"?

Masuk Dengan Apple - antarmuka

Setelah mengetuk "Masuk Dengan Apple" atau "Lanjutkan dengan Apple" (tergantung pada tombol mana yang dipilih untuk diterapkan dalam aplikasi), jendela informasi muncul dengan kemungkinan solusi ini (tangkapan layar kedua). Kemudian setelah mengetuk “Lanjutkan” kami mendapatkan informasi tentang data apa yang akan dibagikan dengan pemilik aplikasi.

Di sini kami memiliki dua opsi untuk mendaftarkan akun di aplikasi menggunakan Masuk Dengan Apple:

  1. Dengan membagikan alamat email kami — alamat email asli Anda akan dibagikan dengan aplikasi atau situs web.
  2. Dengan menyembunyikan alamat email kami — email asli Anda tidak akan dibagikan ke aplikasi atau situs web. Apple akan membuatkan email unik untuk Anda dengan domain @privaterelay.appleid.com. Jangan khawatir, semua email dari pemilik aplikasi akan diteruskan ke kotak masuk Anda, karena email akan diteruskan ke alamat email kami yang sebenarnya. Pemilik aplikasi hanya akan mengetahui alamat email yang dibuat dengan domain Apple

Setelah memilih salah satu opsi dan mengetuk "Lanjutkan", kami memverifikasi ID Apple kami seperti dalam kasus membuka kunci telepon, yaitu dengan ID Wajah, ID Sentuh atau dengan memasukkan kode sandi. Pada titik ini, akun harus dibuat di aplikasi / situs web dengan pengenal unik untuk pengguna.

Ketika Anda menggunakan aplikasi "Sign In With Apple" sebelumnya, maka Anda dapat melihat detail cara masuk pengaturan ini dan berhenti menggunakan fitur ini. Untuk melakukannya, buka Pengaturan > ID Apple > Kata Sandi & Keamanan > Aplikasi yang Menggunakan ID Apple Anda > Pilih Aplikasi.


Bagaimana cara menerapkan "Masuk Dengan Apple"?

Setelah membaca bagian teoretis dari "Masuk Dengan Apple", kita dapat melanjutkan ke implementasi

Masuk dengan Apple - langkah pertama implementasi

Pertama-tama, Anda perlu membuka "Signing & Capabilities" di proyek Anda, lalu tekan + dan tambahkan kemampuan "Sign In With Apple".

Masuk dengan Apple - proses implementasi langkah demi langkah

Apple pada keynote WWDC membagi proses implementasi fitur ini menjadi empat tahap. Semua tahapan dijelaskan di bawah ini.

1. Tombol

Pada awalnya, kita harus menambahkan tombol ke layar kita. Ini harus berupa tombol ASAuthorizationAppleIDButton dari kerangka kerja AuthenticationService . Ini tersedia dalam dua warna (putih dan hitam) dengan judul yang berbeda. Ke tombol, kita harus menambahkan tindakan yang akan dipanggil setelah mengetuknya. Saya menjelaskan tindakan otorisasi pada poin kedua.

 impor Layanan Otentikasi

let button = ASAuthorizationAppleIDButton(type: .signIn, style: .white)
button.addTarget(self, action: #selector(appleIdButtonClicked), untuk: .touchUpInside)
stackView.addArrangedSubview(tombol)

2. Otorisasi ️

Di sini kami membuat permintaan otorisasi, di mana seperti yang requestedScopes , kami hanya memberikan informasi yang diperlukan untuk membuat akun di aplikasi atau situs web kami. Dalam kasus saya, ini adalah nama lengkap dan alamat email. Kemudian atur delegasi dan buat permintaan.

 @objc func appleIdButtonClicked() {
    biarkan permintaan = ASAuthorizationAppleIDProvider().createRequest()
    request.requestedScopes = [.fullName, .email]

    biarkan controller = ASAuthorizationController(authorizationRequests: [permintaan])
    controller.delegate = diri sendiri
    controller.presentationContextProvider = self
    controller.performRequests()
}

3. Verifikasi

Setelah pemeriksaan cepat dengan ID Wajah, ID Sentuh atau kode sandi, hasil otorisasi akan dikembalikan. Ketika otorisasi berhasil, metode didCompleteWithAuthorization akan mengembalikan objek tipe AppleIdCredential . Kemudian Anda perlu memeriksa apakah itu kredensial jenis ASAuthorizationAppleIdCredential — jika ya, dalam objek ini kami akan menemukan semua data yang diperlukan untuk menyiapkan akun di sistem kami, seperti ID pengguna unik, nama lengkap, dan alamat email (yang pengguna telah meminta sebelumnya). Pada titik ini, kami dapat melanjutkan untuk membuat akun di sistem kami dengan hanya memberikan informasi yang diperlukan. Jika terjadi kesalahan, kesalahan tersebut akan dikembalikan dalam metode didCompleteWithError , tempat kami dapat menangani kesalahan ini.

 fungsi otorisasiController(pengontrol: ASAuthorizationController, didCompleteWithAuthorization otorisasi: ASAuthorization) {
    jika biarkan appleIDCredential = otorisasi.credential sebagai? ASAuthorizationAppleIDCredential {
        // Buat akun di sistem Anda.
    } else jika biarkan passwordCredential = otorisasi.credential as? ASPasswordCredential {
        // Masuk menggunakan kredensial Rantai Kunci iCloud yang ada.
    }
}

fungsi otorisasiController(pengontrol: ASAuthorizationController, kesalahan didCompleteWithError: Kesalahan) {
    cetak (kesalahan)
}

4. Menangani perubahan

Anda harus siap dengan kenyataan bahwa pengguna, misalnya, telah berhenti menggunakan login aplikasi menggunakan ID Apple. Ini harus ditangani dengan benar setelah pengguna meluncurkan kembali aplikasi.

Menggunakan ID pengguna yang kami terima saat pendaftaran akun, kami bisa mendapatkan status kredensial ID Apple saat ini dengan menjalankan metode getCredentialState dengan sangat cepat. Metode ini dapat mengembalikan tiga status:

  • authorized — pengguna resmi yang dapat terus menggunakan aplikasi.
  • revoked — logout pengguna dan Anda dapat mengarahkannya ke layar login untuk login lagi.
  • notFound — berarti pengguna belum pernah menggunakan "Masuk Dengan Apple". Pada titik ini, tunjukkan juga layar login kepada pengguna.

Pemanggilan metode getCredentialState harus berada di AppDelegate dalam metode didFinishLaunchingWithOptions .

Selain itu, Apple menyediakan Pemberitahuan, di mana ia memberi tahu ketika kredensial telah dicabut dan kemudian kami harus menanganinya dengan cara yang disebutkan di atas untuk status ini.

 appleIDProvider.getCredentialState(forUserID: userId) { credentialState, kesalahan dalam
    beralih status kredensial {
    kasus . berwenang:
        // Kredensial ID Apple valid.
    kasus .dicabut:
        // Kredensial ID Apple dicabut, logout.
    kasus .notDitemukan:
        // Kredensial tidak ditemukan, jadi tunjukkan UI masuk.
    bawaan:
        merusak
    }
}

// Daftar untuk pemberitahuan pencabutan
NotificationCenter.default.addObserver(forName: NSNotification.Name.ASAuthorizationAppleIDProviderCredentialDicabut, 
                                       objek: nihil,
                                       antrian: nihil) { _ in
    // Keluarkan pengguna, pandu mereka untuk masuk lagi secara opsional
}

Setelah menerapkan keempat tahap dalam aplikasi sampel saya, semuanya berfungsi dan terlihat seperti ini:

Diimplementasikan Masuk dengan Apple

Apakah saya harus menambahkan "Masuk Dengan Apple" ke aplikasi saya?

Jika aplikasi Anda menggunakan metode login pihak ketiga seperti Facebook, Google atau LinkedIn, maka Anda juga harus menambahkan Masuk Dengan Apple sesuai dengan pedoman baru. Jika Anda tidak menambahkannya, aplikasi Anda mungkin ditolak dan tidak dapat ditinjau oleh Apple. Di bawah ini adalah tautan ke berita dan kutipan dari pedoman.

Panduan Baru untuk Masuk Dengan Apple— 12 September 2019 ️

Mulai hari ini, aplikasi baru yang dikirimkan ke App Store harus mengikuti panduan ini. Aplikasi dan pembaruan aplikasi yang ada harus mengikutinya sebelum April 2020.


Di bawah ini adalah aplikasi yang menawarkan masuk menggunakan fitur baru Apple, tentu saja, semakin banyak setiap hari

Contoh aplikasi yang menggunakan fitur Masuk Dengan Apple

Anda dapat memeriksa seluruh proyek di GitHub saya di sini.

Sumber:

  • https://developer.apple.com/videos/play/wwdc2019/706/
  • https://developer.apple.com/videos/play/wwdc2019/516
  • https://developer.apple.com/sign-in-with-apple/get-started/
  • https://developer.apple.com/news/?id=09122019b
  • https://developer.apple.com/app-store/review/guidelines/#sign-in-with-apple