1. 程式人生 > >騰訊雲物件儲存,PHP與JS對接版本

騰訊雲物件儲存,PHP與JS對接版本

(PS:這些問題都是前端小夥伴們遇到的)
var self = this;
                    var random = parseInt(Math.random() * Math.pow(2, 32));
                    var now = parseInt(new Date().getTime() / 1000);
                    var e = now + 60; //簽名過期時間為當前+60s
                    var path = '';//多次簽名這裡填空
                    var str = 'a=' + self.appid + '&k=' + sid + '&e=' + e + '&t=' + now + '&r=' + random +
                            '&f=' + path + '&b=' + self.bucket;
                    var sha1Res = CryptoJS.HmacSHA1(str, skey);//這裡使用CryptoJS計算sha1值,你也可以用其他開源庫或自己實現
                    var strWordArray = CryptoJS.enc.Utf8.parse(str);
                    var resWordArray = sha1Res.concat(strWordArray);
                    var res = resWordArray.toString(CryptoJS.enc.Base64);
                    setTimeout(function () {//setTimeout模擬一下網路延遲的情況
                        callback(encodeURIComponent(res));
                    }, 1000);
但是,這樣使用就報錯了,記憶中是ERROR_PROXY_APPID_USERID_NOTMATCH錯誤,感覺很是不可思議,覺得自己已經把自己的appid, key等東西都寫死在這個程式裡了,怎麼會出現這個錯誤,然後上網搜尋,發現有人提到要將self.appid與self.bucket去掉;然後去掉了,果然不報這個錯誤了,該為另一個錯誤,變成了簽名過期的錯誤。很是莫名其妙的。然後查了好多時間都沒有發現問題在哪裡。