设置第三方服务器以与Game Center交互

And*_*ark 14 authentication sinatra ios game-center

我正在考虑为我的iOS游戏添加一个功能,允许玩家创建自己的游戏关卡,与其他玩家分享,评分等等.有一个用户创建关卡的公共存储库,可按创建日期排序,评级,难度或其他标准.

这种功能需要第三方服务器.我在想我会使用Sinatra创建一个RESTful API并在Heroku上运行它.我的问题是:验证对此API的请求的最佳方法是什么?我宁愿不要求玩家创建用户名和密码.我想使用Game Center的ID系统.

有什么建议?我从来没有做任何服务器端的东西,所以任何帮助表示赞赏!

澄清

是的,我知道Apple没有提供自己的系统.但它确实让开发人员可以访问唯一的游戏中心标识符(developer.apple.com/library/mac/#documentation/ ...),我希望我能以某种方式使用它来滚动我自己的身份验证系统,而无需用户通过Facebook登录/微博/等.如果那是可能的.

and*_*ser 11

看起来像iOS 7,这可以通过Game Center使用:

[localPlayer generateIdentityVerificationSignatureWithCompletionHandler]

一旦使用generateIdentity调用验证了播放器的身份,

  • 将玩家ID与服务器数据库中的用户相关联
  • 使用REST框架为后续调用提供的任何访问令牌/身份验证模式

https://developer.apple.com/library/ios/documentation/GameKit/Reference/GKLocalPlayer_Ref/Reference/Reference.html

另外作为参考,这里是我们最终根据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]
};
Run Code Online (Sandbox Code Playgroud)