Facebook signed_request文档示例中的base64无效

时间:2012-06-05 01:52:24

标签: programming-languages facebook-oauth facebook-authentication

https://developers.facebook.com/docs/authentication/signed_request/处的文档提供了编码数据的示例,这似乎是错误的。

<?php
    echo base64_decode("eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsIjAiOiJwYXlsb2FkIn0");
    echo "\n";
    echo base64_encode('{"algorithm":"HMAC-SHA256","0":"payload"}');
    echo "\n";
?>

给出输出:

{"algorithm":"HMAC-SHA256","0":"payload"}
eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsIjAiOiJwYXlsb2FkIn0=

base64_decode的参数缺少=填充字符。在同一数据上使用base64_encode表明它不是用PHP创建的,或者使用的PHP版本被窃听,或者我不知道是什么。相同的文档页面提供了签名,用于签署丢失的=字符串。

问题:在Facebook文档中是否遗漏了填充错误,或者我是否应该在生产代码中预期这些遗漏?

其他语言不像php那样“优雅地”失败,并且实际上不会解码缺少填充符号的base64数据 - 所以这有点重要。

1 个答案:

答案 0 :(得分:2)

我的商店用C#做的东西,我们自己去添加填充。

了解Facebook,多年来在他们的平台上开发......好吧,让我们说这个小文档打嗝并不让我感到惊讶。