允许经过身份验证的IOS游戏中心用户自动进行身份验证

时间:2013-02-11 02:48:49

标签: iphone ios authentication networking security

我正在制作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的事情,我不想做(出于显而易见的原因,如果你阅读技术相关新闻)。

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

1 个答案:

答案 0 :(得分: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);

    };