我想创建一个authTicket
以便与Sinch Web SDK一起使用,如文档(Authentication by your backend)中所述。
对于执行此操作所需的服务器端代码,Sinch至少提供了两个示例:
第一步是JSON编码。但是,如果我分别在JavaScript或PHP中运行它,我会得到不同的结果:
JavaScript JSON.stringify(userTicket)
{
"applicationKey":"XXXXXXXXXXXXXXXX",
"identity":{"type":"username","endpoint":"johndoe"},
"created":"2017-04-12T12:34:56.789Z",
"expiresIn":86400
}
PHP json_encode($userTicket)
{
"identity":{"type":"username","endpoint":"johndoe"},
"expiresIn":86400,
"applicationKey":"XXXXXXXXXXXXXXXX",
"created":"2017-04-12T12:34:56.789Z"
}`
(请忽略空格,这与StackOverflow格式有关。我问的是键的顺序。)
后来,这个输出应该进入哈希函数。由于两个JSON字符串都具有不同顺序的键,因此两个输入都不会产生相同的散列输出。
计算authTicket的正确算法是什么,特别是在涉及JSON编码部分时?