iOS
...
Users
Panduan Teknis Mengintegrasikan Masuk dengan Apple di iOS
12 mnt
masuk dengan apple pendahuluan saat mengintegrasikan metode masuk pihak ketiga di aplikasi ios, sangat penting untuk menambahkan opsi masuk dengan apple sebagai alternatif tambahan untuk tujuan ini, apple memperkenalkan authenticationservices kerangka kerja kerangka kerja ini memungkinkan pengembang untuk mengintegrasikan tombol masuk dengan apple dengan mulus di proyek xcode mana pun di https //github com/templates back4app/ios sign in with apple kami menyediakan template xcode sederhana di mana anda dapat menguji berbagai metode masuk yang kami terapkan contoh ini sudah diperkenalkan dalam https //www back4app com/docs/ios/parse swift sdk/users/user log in anda dapat mengunjungi kembali untuk detail lebih lanjut tentang proyek ini prasyarat untuk menyelesaikan panduan cepat ini, anda memerlukan versi terbaru dari xcode akun pengembang apple dengan tim pengembang non pribadi sebuah aplikasi yang dibuat di back4app ikuti https //www back4app com/docs/get started/new parse app untuk belajar cara membuat aplikasi parse di back4app catatan ikuti https //www back4app com/docs/ios/parse swift sdk untuk membuat proyek xcode yang terhubung ke back4app tujuan untuk mengintegrasikan fitur masuk pengguna menggunakan authenticationservices framework dan parseswift sdk 1 mengatur masuk dengan apple setelah kita memiliki proyek xcode https //www back4app com/docs/ios/parse swift sdk/install sdk ke aplikasi back4app , kita melanjutkan untuk menambahkan kemampuan masuk dengan apple untuk melakukan ini, pilih proyek anda dari penjelajah proyek dan pergi ke bagian target pilih target utama dan pergi ke tab signing & capabilities , lalu klik tombol + capability dan tambahkan kemampuan masuk dengan apple ini adalah satu satunya konfigurasi yang diperlukan untuk mulai mengintegrasikan sign in with apple metode pada aplikasi ios 2 menggunakan framework authenticationservices dengan parseswift proses masuk dengan apple dapat diselesaikan dalam tiga tahap tetapi sebelum itu, mari kita tambahkan dan atur tombol yang akan digunakan untuk menyajikan sign in with apple alur di dalam logincontroller logincontroller kelas kita menambahkan tombol ini 1 // logincontroller swift file 2 import authenticationservices 3 4 5 class logincontroller uiviewcontroller { 6 7 8 private let signinwithapplebutton uibutton = { 9 let button = uibutton(type system) 10 button setimage(uiimage(named "appleicon"), for normal) 11 button imageview? contentmode = scaleaspectfit 12 return button 13 }() 14 15 override func viewdidload() { 16 super viewdidload() 17 // 18 // layout configuration 19 // 20 21 signinwithapplebutton addtarget(self, action #selector(handlesigninwithapple), for touchupinside) 22 } 23 } 24 25 // mark sign in with apple section 26 extension logincontroller asauthorizationcontrollerdelegate, asauthorizationcontrollerpresentationcontextproviding { 27 @objc fileprivate func handlesigninwithapple() { 28 // todo here we will implement the sign in procedure 29 } 30 31 // asauthorizationcontrollerdelegate 32 33 func authorizationcontroller(controller asauthorizationcontroller, didcompletewithauthorization authorization asauthorization) { 34 // todo handle the sign in result 35 } 36 37 func authorizationcontroller(controller asauthorizationcontroller, didcompletewitherror error error) { 38 showmessage(title "error", message error localizeddescription) 39 } 40 41 // asauthorizationcontrollerpresentationcontextproviding 42 43 func presentationanchor(for controller asauthorizationcontroller) > aspresentationanchor { 44 guard let window = view\ window else { fatalerror("no uiwindow found!") } 45 return window 46 } 47 } perhatikan bahwa logincontroller logincontroller mematuhi dua protokol baru asauthorizationcontrollerdelegate asauthorizationcontrollerdelegate dan asauthorizationcontrollerpresentationcontextproviding asauthorizationcontrollerpresentationcontextproviding protokol pertama memungkinkan kita untuk mendelegasikan hasil masuk ke kelas logincontroller logincontroller protokol kedua adalah untuk menentukan uiwindow uiwindow di mana lembar masuk ditampilkan kami sekarang mengimplementasikan alur dalam metode handlesigninwithapple() handlesigninwithapple() pada tahap pertama, kami menyiapkan permintaan dan formulir permintaan dibangun oleh kelas asauthorizationappleidrequest asauthorizationappleidrequest kami mendapatkan instance dari kelas ini dari asauthorizationappleidprovider asauthorizationappleidprovider penyedia dan formulir oleh asauthorizationcontrolle asauthorizationcontrolle r kelas setelah kami memiliki instance dari permintaan, kami harus menyediakan ruang lingkup yang kami minati sejauh ini apple hanya memberikan akses ke nama lengkap dan email pengguna oleh karena itu, cara standar untuk membuat permintaan adalah 1 @objc fileprivate func handlesigninwithapple() { 2 let provider = asauthorizationappleidprovider() 3 let request asauthorizationappleidrequest = provider createrequest() 4 request requestedscopes = \[ fullname, email] 5 6 } dengan permintaan ini, kami membangun sebuah asauthorizationcontroller asauthorizationcontroller controller controller ini bertanggung jawab untuk menampilkan lembar di mana pengguna mengautentikasi dan memberikan izin yang sesuai untuk menyelesaikan proses masuk 1 @objc fileprivate func handlesigninwithapple() { 2 // as requested by apple, we set up the necessary objects to implement the sign in with apple flow 3 // see https //help apple com/developer account/#/devde676e696 for more details 4 let provider = asauthorizationappleidprovider() 5 let request asauthorizationappleidrequest = provider createrequest() 6 request requestedscopes = \[ fullname, email] 7 8 let authorizationcontroller = asauthorizationcontroller(authorizationrequests \[request]) 9 authorizationcontroller delegate = self // here self is a reference to logincontroller 10 authorizationcontroller presentationcontextprovider = self // here self is a reference to logincontroller 11 12 // presents the sign in with apple sheet and the result will be handled by the asauthorizationcontrollerdelegate delegate 13 authorizationcontroller performrequests() 14 } pada tahap terakhir kami menangani hasil masuk ini dikembalikan melalui metode delegate authorizationcontroller(controller\ didcompletewithauthorization ) authorizationcontroller(controller\ didcompletewithauthorization ) argumen terakhir dalam metode ini adalah sebuah asauthorization asauthorization kelas yang berisi semua informasi yang diperlukan tentang apple id dan kredensial tahap ini adalah di mana kami mengasosiasikan sebuah user user objek dan melakukan log in ke back4app back4app aplikasi objek user user ini memiliki struktur berikut (lihat https //www back4app com/docs/ios/parse swift sdk/users/user log in untuk detail lebih lanjut) 1 import parseswift 2 3 struct user parseuser { 4 5 6 var username string? 7 var email string? 8 var emailverified bool? 9 var password string? 10 11 var age int? 12 } sekarang, kita membuat sebuah user user objek dari data yang terdapat dalam asauthorization asauthorization hasil kita melakukan ini dengan menginstansiasi sebuah parseapple parseapple objek (dari user apple user apple ) dan memanggil metode login(user\ identitytoken ) login(user\ identitytoken ) 1 // mark sign in with apple section 2 extension logincontroller asauthorizationcontrollerdelegate, asauthorizationcontrollerpresentationcontextproviding { 3 4 // asauthorizationcontrollerdelegate 5 6 func authorizationcontroller(controller asauthorizationcontroller, didcompletewithauthorization authorization asauthorization) { 7 // we cast the (asauthorization) authorization object to an asauthorizationappleidcredential object 8 guard let credential = authorization credential as? asauthorizationappleidcredential else { 9 return showmessage(title "sign in with apple", message "invalid credential") 10 } 11 12 guard let identitytoken = credential identitytoken else { 13 return showmessage(title "sign in with apple", message "token not found") 14 } 15 16 // we log in the user with the token generated by apple 17 user apple login(user credential user, identitytoken identitytoken) { \[weak self] result in 18 switch result { 19 case success(let user) 20 // after the login succeeded, we send the user to the home screen 21 // additionally, you can complete the user information with the data provided by apple 22 let homecontroller = homecontroller() 23 homecontroller user = user 24 25 self? navigationcontroller? pushviewcontroller(homecontroller, animated true) 26 case failure(let error) 27 self? showmessage(title "error", message error message) 28 } 29 } 30 } 31 } 3 memverifikasi masuk pengguna dan pembuatan sesi untuk memastikan bahwa masuk google berhasil, anda dapat melihat di back4app dasbor aplikasi anda dan melihat pengguna pengguna baru yang berisi authdata authdata parameter facebook anda juga dapat memverifikasi bahwa sesi yang valid telah dibuat di dasbor, yang berisi pointer ke pengguna pengguna objek yang sesuai 4 menghubungkan pengguna yang ada ke apple id jika aplikasi ios anda memerlukan penghubungan apple id ke pengguna yang ada di back4app platform, objek parseapple\<user> parseapple\<user> mengimplementasikan metode link(user\ identitytoken\ completion ) link(user\ identitytoken\ completion ) di mana anda mengirimkan nilai user user dan identitytoken identitytoken dari asauthorizationappleidcredential asauthorizationappleidcredential kredensial 1 let credential asauthorizationappleidcredential 2 3 guard let identitytoken = credentials identitytoken else { 4 return showmessage(title "sign in with apple", message "token not found") 5 } 6 7 user apple link(user credential user, identitytoken identitytoken){ result in 8 switch result { 9 case success(let user) 10 // linking succeeded, user object now is linked to the corresponding apple id 11 case failure(let error) 12 // linking failed, handle the error 13 } 14 } 5 jalankan aplikasi anda dapat pergi ke https //github com/templates back4app/ios sign in with apple ini dan mengunduh proyek contoh sebelum menjalankan proyek, pastikan anda mengatur profil penyedia dengan yang terkait dengan akun pengembang anda kesimpulan di akhir panduan ini, anda telah belajar bagaimana cara masuk atau menghubungkan pengguna back4app yang ada di ios menggunakan masuk dengan apple