diff --git a/src/connectors/captcha.ts b/src/connectors/captcha.ts index e66d6b07ad5..f42ff36fcbc 100644 --- a/src/connectors/captcha.ts +++ b/src/connectors/captcha.ts @@ -47,7 +47,7 @@ async function start() { let decodedData: any; try { - decodedData = JSON.parse(b64Decode(data)); + decodedData = JSON.parse(b64Decode(data, true)); } catch (e) { error("Cannot parse data."); return; diff --git a/src/connectors/common.ts b/src/connectors/common.ts index 508fed5f43d..4801cf60af8 100644 --- a/src/connectors/common.ts +++ b/src/connectors/common.ts @@ -14,7 +14,11 @@ export function getQsParam(name: string) { return decodeURIComponent(results[2].replace(/\+/g, " ")); } -export function b64Decode(str: string) { +export function b64Decode(str: string, spaceAsPlus = false) { + if (spaceAsPlus) { + str = str.replace(/ /g, "+"); + } + return decodeURIComponent( Array.prototype.map .call(atob(str), (c: string) => {