我有以下代码,它先用Facebook验证用户身份,然后用Firebase验证用户身份:
func authenticateWithFacebook() {
FBSDKLoginManager().logIn(withReadPermissions: ["public_profile"], from: self) { (user, error) in // Signs up user with Facebook
if let error = error {
print(error.localizedDescription)
} else if (user!.isCancelled) { // User cancels sign up
print("User Cancelled")
} else {
self.authenticateFacebookUserWithFirebase(credential: FacebookAuthProvider.credential(withAccessToken: FBSDKAccessToken.current().tokenString))
}
}
}
func authenticateFacebookUserWithFirebase(credential: AuthCredential) {
Auth.auth().signInAndRetrieveData(with: credential) { (user, error) in
if let error = error {
print(error.localizedDescription)
} else {
print("Success")
}
}
}这段代码按预期工作。一旦用户通过了Firebase的身份验证,我该如何处理在应用程序中“创建”的Facebook用户?我是否需要跟踪currentAccessToken并在令牌过期时向Firebase身份验证发出警报?如果不是,我是只保留代码不变,还是应该使用FBSDK将Facebook用户从我的应用程序中注销?我只是不想让Facebook令牌在我的应用程序中四处漂浮。
发布于 2018-07-21 07:07:25
用户没有使用Facebook登录到Firebase。你的应用程序不会获得用户的facebook电子邮件和密码凭据,以便将他们登录到应用程序的Firebase。相反,它会获取该用户的访问令牌,然后使用该令牌向Firebase验证用户身份。因此,您不能从Facebook注销您的用户,但您可以做的是使访问令牌无效。
https://stackoverflow.com/questions/51450581
复制相似问题