如何在我的Node.js服务器上验证GKLocalPlayer

时间:2014-04-22 15:03:16

标签: javascript ios node.js authentication certificate

Apple's Doc, generateIdentityVerificationSignatureWithCompletionHandler中,您将连接成数据缓冲区4个参数,其中一个是“Big-Endian UInt-64格式的时间戳参数 ”,然后生成一个用于验证的SHA-1哈希值。

有没有人在Node.js / Javascript中成功完成此任务?我遇到的主要问题是Javascript / Node.js似乎没有任何支持64位无符号大端整数;似乎 max out 为32位,无符号。

PS:我知道以下相关问题,但他们没有解决这个特定的JavaScript问题。

  1. How to authenticate the GKLocalPlayer on my 'third party server'?:解决方案适用于ruby,python和obj-c;所有 有本机支持生成64位BE十六进制 时间戳。
  2. How to authenticate Game Center User from 3rd party node.js server:代码依赖于发送服务器a的客户端 时间戳已经是十六进制字符串的形式(参见 json.hexTimestamp,在22左右)
  3. 甚至可以在javascript 中可靠地创建64位无符号大端的十六进制表示... ?我正在考虑通过Node.js执行ruby / python作为一种可能的解决方法。

1 个答案:

答案 0 :(得分:1)

更简单的方法是使用ref

var ref = require('ref');

var buf = ref.alloc('uint64');
ref.writeUInt64BE(buf, 0, '1401893400733');

之后,您可以使用缓冲区来更新验证程序。