gab-social/app/javascript/gabsocial/api.js
rubic0n 57a88c5904 Avoid redundant OAuth queries when not signed in
If you aren't signed in, you don't have an auth token.
When you don't have an auth token, React was sending the headers

"Authorization: Bearer null"

This caused 5 Doorkeeper token lookups using
WHERE "oauth_access_tokens"."token" = 'null'
on the Explore page (the root of the app when not signed in).
2021-02-06 22:41:35 -06:00

45 lines
913 B
JavaScript

'use strict';
import axios from 'axios';
import LinkHeader from 'http-link-header';
import ready from './ready';
export const getLinks = response => {
const value = response.headers.link;
if (!value) {
return { refs: [] };
}
return LinkHeader.parse(value);
};
const csrfHeader = {};
function setCSRFHeader() {
const csrfToken = document.querySelector('meta[name=csrf-token]');
if (csrfToken) {
csrfHeader['X-CSRF-Token'] = csrfToken.content;
}
}
ready(setCSRFHeader);
export default getState => {
const authToken = getState ? getState().getIn(['meta', 'access_token'], '') : null;
return axios.create({
headers: Object.assign(csrfHeader, authToken ? {
'Authorization': `Bearer ${authToken}}`,
} : {}),
transformResponse: [function (data) {
try {
return JSON.parse(data);
} catch (Exception) {
return data;
}
}],
});
};