通过 JavaScript 进行 Base64URL 解码?

新手上路,请多包涵

所以我很难过。我知道有很多用于 JS 的 Base64 编码器/解码器,但不是用于修改后的(和 Facebook 喜欢的)Base64URL 变体。到目前为止,跨 stackoverflow 的搜索已经枯竭。

是的,我可以使用 PHP 或其他服务器端库对此进行解码,但无论我使用的是什么平台,我都试图保持这种通用性……例如,如果我要托管一个纯 HTML 的 Facebook 应用程序在 Amazon S3/CloudFront 上,只使用他们的 JS SDK 和 jQuery 来处理表单和获取数据。

也就是说,有人知道任何 Base64URL 特定的 JavaScript 解码器吗?

提前致谢!

原文由 chrisfullman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 816
1 个回答

在解码之前使用它:

 var decode = function(input) {
        // Replace non-url compatible chars with base64 standard chars
        input = input
            .replace(/-/g, '+')
            .replace(/_/g, '/');

        // Pad out with standard base64 required padding characters
        var pad = input.length % 4;
        if(pad) {
          if(pad === 1) {
            throw new Error('InvalidLengthError: Input base64url string is the wrong length to determine padding');
          }
          input += new Array(5-pad).join('=');
        }

        return input;
    }

使用此功能后,您可以使用任何 base64 解码器

原文由 mohamad 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题