2014-06-27 12 views
6

Secondo questa CloudKit overview:anonimo Accedi ad un App con iCloud di Apple ID

CloudKit consente inoltre agli utenti di accedere in forma anonima al tuo applicazioni con loro ID iCloud di Apple senza condividere le loro informazioni personali.

Non riesco a trovare nient'altro nella loro documentazione su questa funzionalità. Ho già un'app con il mio back-end, quindi non avrei bisogno di nessuna delle funzionalità di back-end-as-a-service offerte da CloudKit, ma mi piacerebbe sfruttare l'accesso di un utente con il proprio account iCloud, allo stesso modo che facciamo attualmente con Facebook e Twitter.

È possibile ciò con CloudKit oppure è necessario sfruttare le funzionalità di BAAS per sfruttare l'accesso?

risposta

7

Da ciò che hanno discusso al WWDC, lo faresti usando il metodo fetchUserRecordIDWithCompletionHandler: su CKContainer. Ciò restituisce un CKRecordID che corrisponde all'utente corrente. Questo ID sarà stabile su tutti i dispositivi ma diverso per ogni app, quindi se la stessa persona utilizza la tua app su più dispositivi, la tua app otterrà lo stesso risultato ovunque, ma altre app otterranno risultati diversi dalla tua.

Una volta ottenuto lo CKRecordID, è possibile cercare altri dati utente limitati (nome e indirizzo email, credo) utilizzando fetchRecordWithID:completionHandler:. Questa richiesta attiverà un avviso di autorizzazione all'utente, in modo tale da ottenerlo solo se lo consente.

Questo non richiede l'utilizzo di altro in CloudKit. Richiede che l'utente abbia effettivamente un account iCloud configurato sul dispositivo.

+2

notizie fantastiche, grazie! Immagino che l'unico buco che questo crea per la mia situazione particolare sia che un utente che accede con il suo account iCloud tramite la mia app iOS non sarà in grado di autenticarsi se volesse accedere al mio sito web. hmmm ... – djibouti33

+0

È vero, l'approccio di Apple qui è molto incentrato su Apple, quindi funziona solo su dispositivi iOS e OS X, non su app web o altre piattaforme. –

+0

Per quanto ne so, si imposta CKRecordID quando si crea un record da solo, non viene fuori dal nulla, quindi quando l'utente passa a un altro dispositivo non è possibile per lui avere quell'ID record pronto nell'app. – durazno

1

L'avviso di autorizzazione verrà visualizzato solo se si chiama -[CKContainer requestApplicationPermission:CKApplicationPermissionUserDiscoverability...].

Se l'utente concede l'autorizzazione (CKApplicationPermissionStatusGranted), è possibile ottenere il nome e il cognome dell'utente eseguendo uno CKDiscoverUserInfosOperation.

Richiedere rilevabilità significa che è possibile visualizzare il nome e il cognome dell'utente e che qualsiasi altro utente del contenitore può trovare l'ID del record utente tramite un indirizzo email o cercare il proprio nome e cognome tramite un ID del record utente.