Facebook 不完整的签名请求json字符串?
当facebook将我的应用程序加载到iframe中时,我会在POST数据中获得signed_请求参数,然后我将“.”后面的部分用base64进行解码,以获得签名请求的json字符串表示形式 出于某种原因,从签名请求解码的json字符串不完整,如下所示(格式化为便于阅读): 用户id正确且完整,但字符串的其余部分缺少结束双引号和结束括号。 现在我的应用程序处于沙盒模式,每次都会发生这种情况 你知道为什么会这样吗? 谢谢Facebook 不完整的签名请求json字符串?,facebook,authentication,facebook-authentication,Facebook,Authentication,Facebook Authentication,当facebook将我的应用程序加载到iframe中时,我会在POST数据中获得signed_请求参数,然后我将“.”后面的部分用base64进行解码,以获得签名请求的json字符串表示形式 出于某种原因,从签名请求解码的json字符串不完整,如下所示(格式化为便于阅读): 用户id正确且完整,但字符串的其余部分缺少结束双引号和结束括号。 现在我的应用程序处于沙盒模式,每次都会发生这种情况 你知道为什么会这样吗? 谢谢 编辑 我检查了我的程序是否存在解码错误,我复制了正在发布的内容并在中进行了
编辑
我检查了我的程序是否存在解码错误,我复制了正在发布的内容并在中进行了检查,得到了完全相同的结果。我通过更新到commons codec 1.6解决了同样的问题。这对我来说很有效(修剪字符串并添加一个尾随括号): String jsonString=新字符串(Base64.decodeBase64(payload.getBytes()).trim();
jsonString=jsonString+“}” 嗨,既然你能解码签名的请求,你能建议我怎么做吗。我无法做到这一点,这里是我的问题,我在我的生产环境(非沙盒模式)中有完全相同的问题,但在开发环境(沙盒模式)中没有,非常奇怪…如果您有任何解决方案,请更新!什么?你是说我用的解码器有问题吗?但我测试的在线解码器给出了同样的精确结果,他们是否也使用了有故障的解码器?(我将测试您所说的内容,但要让我的环境做好准备还需要一些时间)我遇到了同样的问题,更新commons编解码器库对我来说很容易,但您可以手动添加字符。看看这里,谢谢你的信息。我还没有真正测试你说的话(使用编解码器1.6),这需要一段时间,直到我能够测试。添加缺少的字符是我所做的,但这几乎不是一个解决方案,更像是一个解决办法。只是想验证将commons编解码器替换为新版本(1.6)是否解决了问题。谢谢
{
"algorithm": "HMAC-SHA256",
"expires": xxxxxxxxxxx,
"issued_at": xxxxxxxxxx,
"oauth_token": "xxxxxxxxxxxxxxxxxxxxxxxx",
"user": {
"country": "il",
"locale": "en_US",
"age": {
"min": 21
}
},
"user_id":"xxxxxxxxx