fix token refresh, log error when failing to send a message

pull/693/head
Ryan Tharp 6 years ago
parent 1c02489c2f
commit c9c1567e80

@ -194,6 +194,24 @@ class LokiAppDotNetServerAPI {
this.setProfileName(profileName); 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; return token;
} }
@ -287,18 +305,15 @@ class LokiAppDotNetServerAPI {
url.search = new URLSearchParams(params); url.search = new URLSearchParams(params);
} }
let result; let result;
const token = await this.getOrRefreshServerToken();
if (!token) {
log.error('NO TOKEN');
return {
err: 'noToken',
};
}
try { try {
const fetchOptions = {}; const fetchOptions = {};
const headers = { const headers = {};
Authorization: `Bearer ${this.token}`, if (forceFreshToken) {
}; await this.getOrRefreshServerToken(true);
}
if (this.token) {
headers.Authorization = `Bearer ${this.token}`;
}
if (method) { if (method) {
fetchOptions.method = method; fetchOptions.method = method;
} }
@ -1538,6 +1553,16 @@ class LokiPublicChannelAPI {
window.mixpanel.track('Public Message Sent'); window.mixpanel.track('Public Message Sent');
return res.response.data.id; 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 // there's no retry on desktop
// this is supposed to be after retries // this is supposed to be after retries
window.mixpanel.track('Failed to Send Public Message'); window.mixpanel.track('Failed to Send Public Message');

Loading…
Cancel
Save