Сервер объектов Realm и iCloud

Как я могу использовать iCloud для аутентификации на сервере объектов Realm?

Я знаю, что должен позвонить login с "токеном iCloud", но не может найти, как получить этот токен.

Пока что я могу найти это: FileManager.default.ubiquityIdentityToken который согласно документам "содержит непрозрачный объект, представляющий личность текущего пользователя". Это не похоже на работу.

Кроме того, каков нормальный рабочий процесс для использования iCloud в качестве аутентификации, я показываю кнопку для этого рядом с учетными данными /Facebook/Twitter для входа? Это немного странно, поскольку пользователям iOS обычно не нужно входить в iCloud. Или я по умолчанию подключаюсь к iCloud, и если пользователь входит в систему с другим провайдером, я выхожу из iCloud? Этот рабочий процесс также кажется странным.

Спасибо

2 ответа

Это приведет к получению токена доступа, который необходимо передать SyncUser.login, Взаимодействие с пользователем не требуется, вы получите сообщение об ошибке, если пользователь не вошел в iCloud:

func fetchCloudKitAccessToken(completion: @escaping (_ accessToken: String?, _ error: Error?) -> Void) {
      let container = CKContainer.default()
      container.fetchUserRecordID { (recordID, error) in
          let userAccessToken = recordID?.recordName
          completion(userAccessToken, error)
      }
  }

Это нужно сделать только для первоначальной аутентификации, после чего вы можете просто использовать SyncUser.current,

Чтобы получить доступ к CloudKit с помощью Realm Object Server, вам нужно будет создать открытый ключ, затем подключиться к веб-панели Apple CloudKit и создать ключ доступа CloudKit для вашего приложения. Эти ключи будут затем использоваться для настройки модуля проверки подлинности CloudKit сервера объектов Realm для конкретной области.

Узнайте больше на https://realm.io/docs/realm-object-server/

Я не думаю, что есть "нормальный" рабочий процесс, все зависит от вашего приложения, но если ваш пользователь уже вошел в систему с iCloud, нет смысла использовать другие учетные данные.

Другие вопросы по тегам