2

我正在制作一个 iphone 应用程序(游戏),虽然它不是我的第一款游戏,但它将是我的第一款使用网络连接的游戏(我打算添加一些乘数功能)所以,现在我的问题。我希望玩家能够打开我的应用程序,登录游戏中心,然后使用它连接到我的服务器。这可能吗?换句话说:

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 的内容,我不想这样做(如果您阅读与技术相关的新闻,原因很明显)。

所以无论如何,有没有一种值得信赖的方式,我可以确定用户是他们所说的身份,一旦他们通过游戏中心进行身份验证,我可以使用它来针对我的服务器对他们进行身份验证?谢谢

4

1 回答 1

1

我认为您可以使用 GKPlayer.playerID 而不是 UDID,它对每个游戏中心帐户都是唯一的。出于其他目的,您可以自定义身份验证处理程序的完成块

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);

    };
于 2013-02-11T09:15:19.627 回答