2014-03-27 22 views
1

我正在向用戶提供手動註冊或使用Facebook註冊的選項(我正在使用Parse)。現在的問題是,如果用戶手動註冊,然後嘗試使用Facebook登錄創建第二個帳戶,並將電子郵件valun留空(因爲已存在)。那麼這個解決方案是什麼?有沒有官方的解決方案?我嘗試了一個解決方法:解析 - 用戶在創建帳戶手冊後試圖用FB登錄 - iOS

FBRequest *requestEmail = [FBRequest requestForMe]; 

[requestEmail startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) { 

NSLog(@"Error %@",error); 

NSDictionary *userData2 = (NSDictionary *)result; 

NSString *email2=userData2[@"email"]; 

PFQuery *query = [PFUser query]; 
[query whereKey:@"email" equalTo:email2]; 
[query getFirstObjectInBackgroundWithBlock:^(PFObject *object, NSError *error) { 


    NSString *emailQue =[object objectForKey:@"email"]; 

    if(error || (emailQue==NULL) || (emailQue==nil)){ 

     NSLog(@"User facebook account does not exist"); 
    } 
    else{ 

     NSLog(@"User facebook email exist"); 
     NSLog(@"email %@",emailQue); 
    } 


}]; 
}]; 

這是失敗(沒有活動令牌可用),我相信這不是正確的方法。即使這項工作,我不能停止loginWithPermission創建一旦取消新用戶。

有什麼建議嗎?

回答

1

如果您知道該用戶是現有的PFUser,您可以將他們的Facebook帳戶與其現有帳戶關聯起來。這是一個支持的分析功能。

if (![PFFacebookUtils isLinkedWithUser:user]) { 
    [PFFacebookUtils linkUser:user permissions:nil block:^(BOOL succeeded, NSError *error) { 
     if (succeeded) { 
      NSLog(@"Woohoo, user logged in with Facebook!"); 
     } 
    }]; 
} 

您可以

PFUser *currentUser = [PFUser currentUser]; 

獲取當前用戶或者你甚至可以匿名用戶轉換爲Facebook的用戶。

https://parse.com/docs/ios_guide#fbusers-link/iOS

+0

嗨,謝謝你的回答。我的問題是當用戶沒有登錄。我知道我可以鏈接他們,但只有當用戶登錄後 – BlackM

+0

我明白了,你可以做你正在建議的東西,並從facebook上檢索電子郵件並檢查它是否存在,如果是的話鏈接該帳戶,如果沒有創建一個新的帳戶。或者,也許更好的體驗是通知他們,他們已經註冊了該電子郵件地址,他們是否希望鏈接此Facebook帳戶? –

+1

問題是,如果登錄方法不存在於數據庫中,則登錄方法會自動創建新用戶。很高興通知他們,他們已經擁有賬戶,但是你不能避免用戶的創造。也是下一次,用戶將登錄與Facebook登錄時,它將使用在 – BlackM

相關問題