RealmSwift 2.8.3,Realm Object Server 1.8.1,Xcode 8,Swift 3.1
我可以使用Realm Object Server(ROS)获得与iCloud身份验证相关的所有内容,但是当我有一个新用户身份验证但我的ROS实例上还没有帐户时,我遇到了一个问题
我能够成功检索到他们的iCloud令牌,但是当我这样做时user
为nil
:
let credentials = SyncCredentials.cloudKit(token: token)
SyncUser.logIn(with: credentials, server: serverURL) { user, error in
DispatchQueue.main.async{
if user == nil {
//--- Error ---
//This is where I end up. I can see the token in the log but no user object
}else{
//--- Success ---
}
}
}
当我在我的ROS中检查错误日志(在Ubuntu上运行)时,我收到此内部服务器错误(500):
2017-07-12T00:39:39.170Z - warn: auth.cloudkit: Handle request failed with: Error: Request failed with code AUTHENTICATION_FAILED: Authentication failed.
2017-07-12T00:39:39.174Z - warn: [services] internal error: Error: Request failed with code AUTHENTICATION_FAILED: Authentication failed.
at request.catch.err (/usr/lib/nodejs/realm-object-server-developer/.build/src/node/managers/auth/provider/cloudkit.js:131:23)
at process._tickCallback (internal/process/next_tick.js:109:7).
现在只是为了确保,我假设SyncCredentials.cloudKit(token: token)
创建用户,如果在我的服务器上找不到该令牌并返回新的用户对象。我在文档中没有看到有关创建新用户与验证现有用户的任何内容。
更新
我仔细检查了所有与iCloud的连接,确保我的key_id
文件中找到的configuration.yml
是正确的,并且我的密钥与我在iCloud容器中的密钥匹配。
现在我得到了一个不同的错误。 :)
2017-07-12T01:12:54.801Z - warn: auth.cloudkit: Handle request failed with: TypeError: Cannot read property 'reason' of undefined
2017-07-12T01:12:54.809Z - warn: [services] internal error: TypeError: Cannot read property 'reason' of undefined
at signedRequest.then.catch.err (/usr/lib/nodejs/realm-object-server-developer/.build/src/node/managers/auth/provider/cloudkit.js:86:11)
at process._tickCallback (internal/process/next_tick.js:109:7).
答案 0 :(得分:1)
根据the docs,如果
之前不存在,则应创建帐户如果凭据有效,则授予用户访问Realm的权限 对象服务器。如果凭据是,则创建新的用户帐户 没有加入现有帐户。
我想在configuration.yml中遇到private_key_path的问题。尝试将.pem文件移动到另一个位置,看看是否有任何更改。
另外,请记住在更改配置文件后重新启动服务器。