使用iCloud身份验证的域身份验证服务器错误

时间:2017-07-12 00:46:48

标签: realm realm-mobile-platform

RealmSwift 2.8.3,Realm Object Server 1.8.1,Xcode 8,Swift 3.1

我可以使用Realm Object Server(ROS)获得与iCloud身份验证相关的所有内容,但是当我有一个新用户身份验证但我的ROS实例上还没有帐户时,我遇到了一个问题

我能够成功检索到他们的iCloud令牌,但是当我这样做时usernil

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).

1 个答案:

答案 0 :(得分:1)

根据the docs,如果

之前不存在,则应创建帐户
  

如果凭据有效,则授予用户访问Realm的权限   对象服务器。如果凭据是,则创建新的用户帐户   没有加入现有帐户。

我想在configuration.yml中遇到private_key_path的问题。尝试将.pem文件移动到另一个位置,看看是否有任何更改。

另外,请记住在更改配置文件后重新启动服务器。