我看到我通過Facebook代碼的解析登錄如下所示。解析:Facebook用戶取消鏈接並再次登錄創建兩個用戶表條目
PFFacebookUtils.logInInBackgroundWithReadPermissions(permissions) {
(user: PFUser?, error: NSError?) -> Void in
if let user = user {
if user.isNew {
println("User signed up and logged in through Facebook!")
let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: nil)
graphRequest.startWithCompletionHandler({ (connection, result, error) -> Void in
if ((error) != nil)
{
println("Error: \(error)")
}
else
{
let userEmail : NSString = result.valueForKey("email") as! NSString
println("User Email is: \(userEmail)")
user["email"] = userEmail
}
})
} else {
println("User logged in through Facebook!")
}
} else {
println("Uh oh. The user cancelled the Facebook login.")
}
}
退出方法是這樣的
PFFacebookUtils.unlinkUserInBackground(PFUser.currentUser()!) { (succeeded: Bool, error: NSError?) -> Void in
if succeeded {
FBSDKAccessToken.setCurrentAccessToken(nil)
FBSDKProfile.setCurrentProfile(nil)
PFUser.logOut()
} else {
println("Error")
}
}
當用戶登錄的第一次,我看到解析在的authData指向Facebook的用戶表中創建行。註銷後,此authData被刪除。
問題是當用戶再次登錄時,解析創建另一行並鏈接指向Facebook的authData,有沒有辦法避免這種情況。我想使用之前創建的同一行並鏈接到Facebook登錄,而不是每次用戶註銷和登錄時創建多行。
我可以檢查電子郵件是否已經存在,但爲此我需要用戶再次登錄的電子郵件,當發生這種情況時,已創建一個新行。
你解決了這個問題嗎? –