環境
NIFCloudMB v3.0.0
最新verはちゃんとしてるのかも?しれないね。
現象
ncmbでエイリアス付きメールアドレスで認証できない。
なんでqiitaで書いてるの?
mobile backendのGithubのISSUEを見ると
open 802件とかなっていて、「これ、本家はやる気ないな。。」
というのがありありと見えてissue立てて解決できるものじゃないな、と諦める。終わっとる。
副業でいじる機会があって、なんじゃこれ、となったのでここで記事を書く。
なんとかしてくれませんかって困ってるクライアントが言われて見てみたら酷い有様だった。
原因
ncmbが使っているljharb/qsが古い。テスト足りてない。
最新のqsはここの挙動を外から指定できる機能がついているが、ncmbが使っているqsにはまだその機能がついていない。
モンキーパッチ
www/ncmb/ncmb.min.jsをいじる
exports.decode = function (str) {
try {
return decodeURIComponent(str.replace(/\+/g, ' '));
} catch (e) {
return str;
}
};
を
exports.decode = function (str) {
try {
return decodeURIComponent(str/*.replace(/\+/g, ' ')*/);
// ^^^^^^^^^^^^^^^^^^^^^^^^
} catch (e) {
return str;
}
};
こうする。
感想
ひどい仕事だった。
以上です。