我正在考虑在iOS游戏中添加一个功能,允许玩家创建自己的游戏级别,与其他玩家共享游戏级别,对他们进行评分等等.将有一个用户创建的级别的公共存储库,按创建日期排序,评级,难度或其他标准.
这种功能将需要第三方服务器.我在想,我将使用Sinatra创建一个RESTful API,并在Heroku上运行它.我的问题是:对API的请求进行身份验证最好的方式是什么?我不想要玩家创建用户名和密码.我想使用游戏中心的ID系统.
有什么建议么?我从来没有做任何服务器端的东西,所以任何帮助是赞赏!
澄清
是的,我知道苹果公司不提供自己的系统.但它确实允许开发人员访问独特的游戏中心标识符(developer.apple.com/library/mac/#documentation/…),我希望我可以使用这种方式滚动我自己的身份验证系统,而不需要用户通过Facebook登录/微博/等.如果可能的话.
解决方法
看起来像iOS 7,这是可能的游戏中心使用:
[localPlayer generateIdentityVerificationSignatureWithCompletionHandler]
一旦您使用generateIdentity调用验证了播放器的身份,
>将玩家ID与服务器数据库上的用户相关联
>使用您的REST框架为后续调用提供的任何访问令牌/身份验证模式
另请参考,这里是我们最终根据generateIdentityVerificationSignatureWithCompletionHandler的响应发送到我们的服务器的字典
NSDictionary *paramsDict = @{ @"publicKeyUrl":[publicKeyUrl absoluteString],@"timestamp":[NSString stringWithFormat:@"%llu",timestamp],@"signature":[signature base64EncodedStringWithOptions:0],@"salt":[salt base64EncodedStringWithOptions:0],@"playerID":localPlayer.playerID,@"bundleID":[[NSBundle mainBundle] bundleIdentifier] };