diff --git a/src/base-apis.js b/src/base-apis.js index 3ae681917..7f395361a 100644 --- a/src/base-apis.js +++ b/src/base-apis.js @@ -89,9 +89,14 @@ MatrixBaseApis.prototype.getHomeserverUrl = function() { /** * Get the Identity Server URL of this client + * @param {boolean} stripProto whether or not to strip the protocol from the URL * @return {string} Identity Server URL of this client */ -MatrixBaseApis.prototype.getIdentityServerUrl = function() { +MatrixBaseApis.prototype.getIdentityServerUrl = function(stripProto=false) { + if (stripProto && (this.idBaseUrl.startsWith("http://") || + this.idBaseUrl.startsWith("https://"))) { + return this.idBaseUrl.split("://")[1]; + } return this.idBaseUrl; }; diff --git a/src/client.js b/src/client.js index 2c0ec0c3b..31ede83fa 100644 --- a/src/client.js +++ b/src/client.js @@ -1547,18 +1547,13 @@ MatrixClient.prototype.inviteByThreePid = function(roomId, medium, address, call { $roomId: roomId }, ); - let identityServerUrl = this.getIdentityServerUrl(); + const identityServerUrl = this.getIdentityServerUrl(true); if (!identityServerUrl) { return Promise.reject(new MatrixError({ error: "No supplied identity server URL", errcode: "ORG.MATRIX.JSSDK_MISSING_PARAM", })); } - if (identityServerUrl.indexOf("http://") === 0 || - identityServerUrl.indexOf("https://") === 0) { - // this request must not have the protocol part because reasons - identityServerUrl = identityServerUrl.split("://")[1]; - } return this._http.authedRequest(callback, "POST", path, undefined, { id_server: identityServerUrl,