Description
New Issue Checklist
- I am not disclosing a vulnerability.
- I am not just asking a question.
- I have searched through existing issues.
- I can reproduce the issue with the latest versions of Parse Server and the Parse ObjC SDK.
Issue Description
Due to an error being received when archiving with Xcode 15.3 as described here #1775, I upgraded to the latest Parse iOS SDK and removed the ParseFacebookUtils
to use PFUser.logInWithAuthType
with Facebook iOS SDK 17 instead with the below sample
let loginManager = LoginManager()
loginManager.logOut()
loginManager.logIn(permissions: ["email", "public_profile"], from: viewController) { result, error in
if error != nil {
print(error!.localizedDescription)
} else if let result = result, result.isCancelled {
print("Cancelled")
} else {
if let tokenId = result?.token?.userID,
let token = result?.token?.tokenString,
let expiry = result?.token?.expirationDate.toFormattedString() {
PFUser.logInWithAuthType(inBackground: "facebook", authData: ["id":tokenId,"access_token":token,"expiration_date":expiry]).continueWith { task -> Any? in
if (task.error != nil) {
self.showLoginError(viewController: viewController)
}
if let user = task.result {
//success
}
return nil
}
} else {
self.showLoginError(viewController: viewController)
}
}
}
The above works with Facebook iOS SDK 16 but not 17. For 17, I started getting an alert to use limited login so I tried making some changes such as the below
let loginManager = LoginManager()
loginManager.logOut()
let configuration = LoginConfiguration(permissions: ["email", "public_profile"], tracking: .enabled)
loginManager.logIn(viewController: viewController, configuration: configuration) { result in
...
}
The above didn't work anyway and I don't think setting the tracking to limited would ever work since this doesn't provide an access token.
When I try to login, I get the error [Error]: Facebook auth is invalid for this user. (Code: 101, Version: 4.0.1)
. I'm not sure if this is due to a misconfiguration from my end or an incompatibility with Parse Server itself. Any suggestions on how this should be configured?
This issue might be related to another issue listed on the Facebook SDK here: facebook/facebook-ios-sdk#2384
Steps to reproduce
- Upgrade Facebook iOS SDK from 16 to 17, as with the SDK version 16 I get the error described in issue #1775
Actual Outcome
I am now getting an error when logging in using Facebook
[Error]: Facebook auth is invalid for this user. (Code: 101, Version: 4.0.1)
Expected Outcome
The migration should be seamless or documented and login with Facebook should work as with previous versions.
Environment
- macOS: 14.4
- Xcode: 15.3
Client
- Parse ObjC SDK version: 4.0.1