Tôi đang sử dụng phân tích cú pháp trong ứng dụng iOS và có hai cách đăng ký, sử dụng email/mật khẩu hoặc đăng nhập Facebook.Cách kết hợp người dùng đã đăng ký bằng facebook với người dùng cũ đã đăng ký bằng cùng một email
Sự cố xảy ra khi người dùng đăng ký bằng email/mật khẩu của mình, sau đó đăng xuất và cố gắng đăng ký bằng tài khoản Facebook có cùng email.
Tôi đang sử dụng [PFFacebookUtils logInInBackgroundWithReadPermissions:block:
để đăng ký với Facebook mà tạo ra một đối tượng người dùng mới trong bảng Users
trong Parse
Bây giờ tôi có hai hồ sơ cho người sử dụng tương tự và tôi không thể cập nhật các bản ghi mà có các thông tin Facebook với email người dùng vì Parse sẽ không cho phép các email trùng lặp
Vậy giải pháp nào tốt nhất để giải quyết vấn đề này?
CẬP NHẬT
Tôi đã sử dụng giải pháp @kRiZ đăng nhập bằng đồng bằng đang Facebook sau đó tạo người dùng mới hoặc liên kết người dùng với các dữ liệu Facebook
- (void)loginWithFacebookWithSuccessCallback:(APISuccessCallback)successCallback
andFailureCallback:(APIFailureCallback)failureCallback {
// Login PFUser using Facebook
NSArray *permissionsArray = @[@"public_profile", @"email"];
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login logInWithReadPermissions: permissionsArray handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if (error) {
failureCallback(error);
} else {
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"me?fields=id,first_name,last_name,email,gender" parameters:nil];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id fbResult, NSError *error) {
if (!error) {
NSString *email = result[@"email"];
User *existingUser = [self getUserByEmail:email];
if (existingUser == nil) {
[self signUpNewUserWithEmail:email];
} else {
// Need to set the current user to existingUser
}
[self linkCurrentWithAccessToken:result.token
successCallback(@{RESULT:RESULT_OK});
} else {
failureCallback(error);
}
}];
}
}];
}
Bây giờ vấn đề là để gán [PFUser currentUser] cho người dùng hiện tại trong trường hợp nó đã tồn tại
đó là vô cùng khó khăn để giải quyết vấn đề này. – Fattie
tôi có cùng một vấn đề .... bạn đã kết thúc giải quyết điều này hoàn toàn? ... nếu vậy ... làm thế nào – lozflan
Khi bạn gọi đây là "[tự signUpNewUserWithEmail: email];' bạn không cần phải nhập mật khẩu? Nhưng sau đó không có mật khẩu trong trường hợp này kể từ khi người dùng đăng nhập thông qua Facebook? –