2013-02-11 52 views
2

我正在一個iPhone應用程序(遊戲),雖然它不會是我的第一場比賽,這將是首個使用網絡連接我的比賽(我打算上添加幾個乘數功能) 所以,現在我的問題。 我希望玩家能夠打開我的應用程序,登錄到遊戲中心,然後用它來連接到服務器。這可能嗎?換句話說:允許通過驗證的IOS遊戲中心的用戶在自動身份驗證

Player signs in to game center 
Sends username to my server 
if (game center username doesnt exist) 
{ 
Add their username to my sql database 
} 
else if (username does exist) 
{ 
Send sign in successful message to device. 
} 

我相信,我讀了前一陣子問如何做到這一點的另一個問題,但得到的答覆說,有關使用設備UDID,這是我不想做的(原因很明顯,如果事情你閱讀技術相關的新聞)。

所以無論如何,有一個值得信賴的辦法,我可以肯定的是,用戶是誰,他們說他們是一旦他們與遊戲中心,我可以使用他們對我的服務器進行身份驗證身份驗證?謝謝

回答

1

我覺得UDID的替代,您可以使用GKPlayer.playerID這是唯一的每個GameCenter的帳戶。爲了您的其他目的,你可以自定義身份驗證處理程序完成塊

GKLocalPlayer * __weak localPlayer = [GKLocalPlayer localPlayer]; 

    localPlayer.authenticateHandler = ^(UIViewController *viewController, NSError *error) 
    { 
     if (viewController != nil) 
     { 
      [currentViewController presentViewController:viewController animated:YES completion:nil]; 

     } 
     else if (localPlayer.isAuthenticated) 
     { 
      NSLog(@"Player authenticated"); 

      /* Your custom methods here 
      Sends username to my server -- send localPlayer.playerID to your server 
      if (game center username doesnt exist) 
      { 
      Add their username to my sql database 
      } 
      else if (username does exist) 
      { 
      Send sign in successful message to device. 
      } 
      */ 
     } 
     else 
     { 
      NSLog(@"Player not authenticated"); 
      //disableGameCenter 
     } 
     NSLog(@"Error: %@",error); 

    };