Merge pull request #693 from neuroscr/multidevice-publicchat

Fix token refreshing
pull/697/head
Ryan Tharp 6 years ago committed by GitHub
commit 9bdd2264fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -194,6 +194,24 @@ class LokiAppDotNetServerAPI {
this.setProfileName(profileName);
}
}
if (tokenRes.err) {
log.error(`token err`, tokenRes);
// didn't already try && this specific error
if (
!forceRefresh &&
tokenRes.response &&
tokenRes.response.meta &&
tokenRes.response.meta.code === 401
) {
// this token is not good
this.token = ''; // remove from object
await Signal.Data.savePublicServerToken({
serverUrl: this.baseServerUrl,
token: '',
});
token = this.getOrRefreshServerToken(true);
}
}
return token;
}
@ -287,18 +305,15 @@ class LokiAppDotNetServerAPI {
url.search = new URLSearchParams(params);
}
let result;
const token = await this.getOrRefreshServerToken();
if (!token) {
log.error('NO TOKEN');
return {
err: 'noToken',
};
}
try {
const fetchOptions = {};
const headers = {
Authorization: `Bearer ${this.token}`,
};
const headers = {};
if (forceFreshToken) {
await this.getOrRefreshServerToken(true);
}
if (this.token) {
headers.Authorization = `Bearer ${this.token}`;
}
if (method) {
fetchOptions.method = method;
}
@ -1538,6 +1553,16 @@ class LokiPublicChannelAPI {
window.mixpanel.track('Public Message Sent');
return res.response.data.id;
}
if (res.err) {
log.error(`POST ${this.baseChannelUrl}/messages failed`);
if (res.response && res.response.meta && res.response.meta.code === 401) {
log.error(`Got invalid token for ${this.serverAPI.token}`);
}
log.error(res.err);
log.error(res.response);
} else {
log.warn(res.response);
}
// there's no retry on desktop
// this is supposed to be after retries
window.mixpanel.track('Failed to Send Public Message');

@ -30,7 +30,7 @@ class LokiPublicChatFactoryAPI extends EventEmitter {
log.warn(`Invalid server ${serverUrl}`);
return null;
}
log.info(`set token ${thisServer.token}`);
log.info(`set token ${thisServer.token} for ${serverUrl}`);
this.servers.push(thisServer);
}

Loading…
Cancel
Save