Realm 领域对象服务器和iCloud
如何使用iCloud向Realm object server进行身份验证 我知道我必须使用“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
登录
,但无法找到如何获取此令牌
到目前为止,我能找到的是: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身份验证的示例用法:谢谢您的回答,我不得不将其搁置。一旦我恢复这个,我会回来复习。