【发布时间】:2019-12-31 10:23:23
【问题描述】:
我正在尝试在 Realm Sync 中启用 Facebook 身份验证,但登录时不断收到错误消息。
我一直在使用这些指南:
我拥有 Facebook API/SDK 提供的访问令牌,使我能够登录/注册用户。
当我使用 Realm 的库通过 Facebook 访问令牌登录用户时,我收到一条错误消息,指出“provider”参数无效,但此参数是由 Realm 自己的类定义的。
我已使用电子邮件和密码成功验证了用户身份,所以我需要在 Facebook/Realm Sync 上设置其他内容吗?似乎 Facebook 身份验证在 Realm Sync 中不起作用,并且上述帮助文件毫无用处。
验证码
func authenticateWithFacebook(facebookToken: String, completion: @escaping (RealmAuthenticationResult) -> ()) {
let credentials = SyncCredentials.facebook(token: facebookToken)
print("------FACEBOOK LOGIN-------")
print("Token: \(facebookToken)")
login(credentials) { (result, userId) in
completion(result)
}
}
private func login(_ credentials: SyncCredentials, completion: @escaping (RealmAuthenticationResult, String?) -> ()) {
SyncUser.logIn(with: credentials, server: RealmConnection.AUTH_URL, onCompletion: { (user, err) in
if let _ = user {
print("User has logged in/signed up")
return completion(RealmAuthenticationResult.success(true), user?.identity)
} else if let error = err {
print(error.localizedDescription)
return completion(RealmAuthenticationResult.failure(error), user?.identity)
}
})
}
错误
Error Domain=io.realm.sync.auth Code=601 "你的请求参数没有 不验证。提供者:参数“提供者”无效!;” UserInfo={NSLocalizedDescription=您的请求参数没有 证实。提供者:参数“提供者”无效!;}
我尝试过的其他方法
我已尝试直接实例化基本提供程序类“RLMIdentityProvider”并使用它创建 SyncCredentials,但没有骰子。
解决方法是从 Facebook API/SDK 获取帐户信息,并使用帐户的电子邮件通过用户名/密码设置登录/注册。但是,这似乎使 Facebook 身份验证变得多余。
【问题讨论】:
标签: swift realm realm-mobile-platform