Realm 领域对象服务器和iCloud

Realm 领域对象服务器和iCloud,realm,icloud,realm-object-server,Realm,Icloud,Realm Object Server,如何使用iCloud向Realm object server进行身份验证 我知道我必须使用“iCloud令牌”调用登录,但无法找到如何获取此令牌 到目前为止,我能找到的是:FileManager.default.ubiquityIdentityToken,根据文档,它“包含一个表示当前用户身份的不透明对象”。这似乎不起作用 另外,使用iCloud作为身份验证的正常工作流程是什么?我是否在凭据/Facebook/Twitter登录旁边显示了此功能的按钮?感觉有点奇怪,因为iOS用户通常不必登录iC

如何使用iCloud向Realm object server进行身份验证

我知道我必须使用“iCloud令牌”调用
登录
,但无法找到如何获取此令牌

到目前为止,我能找到的是:
FileManager.default.ubiquityIdentityToken
,根据文档,它“包含一个表示当前用户身份的不透明对象”。这似乎不起作用

另外,使用iCloud作为身份验证的正常工作流程是什么?我是否在凭据/Facebook/Twitter登录旁边显示了此功能的按钮?感觉有点奇怪,因为iOS用户通常不必登录iCloud。或者默认情况下我是否使用iCloud登录,如果用户使用其他提供商登录,我是否从iCloud注销?这种工作流程感觉也很奇怪

谢谢

为了使用Realm Object Server访问CloudKit,您需要创建一个公钥,然后连接到Apple的CloudKit web dashboard并为您的应用程序创建一个CloudKit访问密钥。然后,这些密钥将用于为特定领域配置领域对象服务器的CloudKit身份验证模块

了解更多信息,请访问

我认为没有“正常”的工作流程,一切都取决于你的应用程序,但如果你的用户已经使用iCloud登录,那么使用其他凭据是没有意义的

为了使用Realm Object Server访问CloudKit,您需要创建一个公钥,然后连接到Apple的CloudKit web dashboard并为您的应用程序创建一个CloudKit访问密钥。然后,这些密钥将用于为特定领域配置领域对象服务器的CloudKit身份验证模块

了解更多信息,请访问


我认为没有“正常”的工作流程,一切都取决于你的应用程序,但是如果你的用户已经使用iCloud登录,那么使用其他凭据就没有意义了。

这将获取你需要传递给
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

这将获取您需要传递给
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

我已经阅读了文档并进行了配置。我只是询问在调用login时必须传递的帐户令牌。您应该使用可以通过
CKContainer.fetchUserRecordIDWithCompletionHandler()
方法获得的有效用户记录ID。请查看此PR以了解iCloud身份验证的示例用法:谢谢您的回答,我不得不将其搁置。一旦我恢复这个,我会回来回顾。我已经阅读了文档并完成了配置。我只是询问在调用login时必须传递的帐户令牌。您应该使用可以通过
CKContainer.fetchUserRecordIDWithCompletionHandler()
方法获得的有效用户记录ID。请查看此PR以了解iCloud身份验证的示例用法:谢谢您的回答,我不得不将其搁置。一旦我恢复这个,我会回来复习。