不完整的签名请求json字符串?

时间:2012-03-22 18:29:36

标签: facebook authentication facebook-authentication

当facebook将我的应用程序加载到iframe中时,我在POST数据中获取了signed_request参数,然后我在“。”之后获取该部分。并使用base64对其进行解码,以获取已签名请求的json字符串表示。

由于某种原因,从签名请求解码的json字符串不完整,看起来像这样(格式化以便于阅读):

{
    "algorithm": "HMAC-SHA256",
    "expires": xxxxxxxxxxx,
    "issued_at": xxxxxxxxxx,
    "oauth_token": "xxxxxxxxxxxxxxxxxxxxxxxx",
    "user": {
        "country": "il",
        "locale": "en_US",
        "age": {
            "min": 21
        }
    },
    "user_id":"xxxxxxxxx

user_id正确且完整,但其余字符串缺少结束双引号和结束括号。 每次使用我的应用程序时都会发生这种情况,这是在沙盒模式下。

为什么会发生这种情况的任何想法? 感谢。


修改

我检查过我的程序中没有一些解码错误,我复制了正在发布的内容并在online decoder中检查了它并获得了完全相同的结果。

2 个答案:

答案 0 :(得分:1)

我通过更新为commons codec 1.6

解决了同样的问题

答案 1 :(得分:1)

这对我有用(修剪字符串并添加尾随括号):

String jsonString = new String(Base64.decodeBase64(payload.getBytes()))。trim(); jsonString = jsonString +“}”;