Closed Shinsuke-I closed 7 years ago
JSで生成しているsignature (Base64化したもの)が、iOS 9.3.5では44文字なのに、 なぜかiOS 10では52文字になってしまっています。このため、signatureが正常に機能 せず、サーバーに弾かれてしまいます。iOSの不具合のようですが、詳細は分かりません。
応急処置として、lib/signature.jsに次のようなパッチを当てれば、強制的に42文字でトリミング して動作しています。
--- a/lib/signature.js
+++ b/lib/signature.js
@@ -37,5 +37,12 @@ function create(url, method, query, timestamp,
var sig = crypto
.createHmac("SHA256", clientkey || this.clientkey)
.update(sigStr).digest("base64");
+
+ if (sig.length == 52) {
+ sig = sig.substr(0,44);
+ }
+
+ // alert("sig : " + sig);
+
return sig;
>knight9999様
詳しい回答ありがとうございます。
Monaca(アシアル様)のテクニカルサポートに問い合わさせていただいた者です。 ソースをいただいておりますので、対応はそちらで行っています。
iOS10かncmb.jsか、正式対応されるまで、 クローズさせないでおきます。
ご迷惑をおかけすることになり、誠に申し訳ございませんでした。 v2.1.3で対応が完了したのでクローズします。
不具合の概要(Description of bug)
「iOS:9.3.5」の場合だとエラーが発生せず、正常にデータを取得出来ます。 ※Monacaを使用して、mBaasと連携してます
mBaasからデータを取得する時にエラーになっているようです。