所以我很困惑。我知道有很多用于JS的Base64编码器/解码器,但是对于修改后的(以及受Facebook支持的)Base64URL变体却不是。到目前为止,对stackoverflow的搜索已经干dry了。

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

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

提前致谢!

最佳答案

在解码之前使用它:

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解码器

关于javascript - 通过JavaScript进行Base64URL解码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5234581/

10-09 15:30