gpt4 book ai didi

ios - 在在线游戏服务器上验证 Game Center 玩家

转载 作者:可可西里 更新时间:2023-11-01 03:33:53 45 4
gpt4 key购买 nike

“Clash of Clans”使用 Game Center 对玩家进行身份验证并将其与现有的远程存储游戏状态相关联。

据我所知,游戏仅在客户端提供玩家标识符。是否有支持的技术来安全地验证用户而不是仅发送标识符(这等同于仅使用用户名进行验证)?

最佳答案

自从我问了这个问题后,Apple 推出了一个新的 API,答案可​​以在:Setting up third-party server to interact with Game Center 上找到。 (谢谢 user2949759)和其他几个地方。

Specifically , 自 iOS 7 ( Apple documentation on Wayback Machine ):

-[GKLocalPlayer generateIdentityVerificationSignatureWithCompletionHandler:]

Generates a signature that allows a third party server to authenticate the local player.

相关回调 block 的参数包括NSURL *publicKeyUrl, NSData *signature, NSData *salt, uint64_t timestamp。这些连同玩家的 playerIDbundleID 应该作为“登录信息”传送到服务器。

  • 此时,服务器端应该使用publicKeyURL获取公钥
  • 服务器端,验证此公钥是否已由 Apple 签名
  • 服务器端,连接 UTF-8 编码的 playerIDbundleID、big-endian uint64 时间戳和逐字 salt
  • 服务器端,生成上述的 SHA-256 以生成digest
  • 服务器端,验证发送到服务器的签名是否正确,using之前下载的公钥、signaturedigest

有一个 example in pseudo-PHP , 一个 example of how one would implement this in Objective-C (逐字使用意义不大),Go implementation , 一个 Ruby implementation在同一个问题上还有其他语言的各种实现。

不出所料,Go 中的实现看起来特别可读,但它并没有验证公钥是由 Apple 颁发的。链接的 Ruby 实现包含一个相当清晰的示例来说明如何做到这一点。

关于ios - 在在线游戏服务器上验证 Game Center 玩家,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14201700/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com