fix(headless): use fetch instead of axios for auth

This commit is contained in:
devthejo 2025-06-29 18:49:11 +02:00
parent 644480182d
commit 09ea8cd563

View file

@ -11,22 +11,26 @@ import {
import { getDeviceUuid } from "./deviceUuid";
// to support refresh auth in headless mode we'll use axios instead of apollo
// to support refresh auth in headless mode we'll use fetch instead of apollo/axios
// read more https://github.com/transistorsoft/react-native-background-fetch/issues/562
export async function registerUser() {
const { data } = await network.axios.post(
env.GRAPHQL_URL,
{
query: REGISTER_USER_MUTATION_STRING,
},
{
const response = await fetch(env.GRAPHQL_URL, {
method: "POST",
headers: {
// Skip adding Authorization header for this request
Authorization: undefined,
"Content-Type": "application/json",
// No Authorization header for this request
},
},
);
body: JSON.stringify({
query: REGISTER_USER_MUTATION_STRING,
}),
});
if (!response.ok) {
throw new Error(`HTTP Error: ${response.status} ${response.statusText}`);
}
const data = await response.json();
if (data.errors && data.errors.length > 0) {
const message = data.errors.map((err) => err.message).join("; ");
@ -39,23 +43,27 @@ export async function registerUser() {
export async function loginUserToken({ authToken }) {
const deviceUuid = await getDeviceUuid();
const { data } = await network.axios.post(
env.GRAPHQL_URL,
{
const response = await fetch(env.GRAPHQL_URL, {
method: "POST",
headers: {
"Content-Type": "application/json",
// No Authorization header for this request
},
body: JSON.stringify({
query: LOGIN_USER_TOKEN_MUTATION_STRING,
variables: {
authTokenJwt: authToken,
phoneModel: Device.modelName,
deviceUuid,
},
},
{
headers: {
// Skip adding Authorization header for this request
Authorization: undefined,
},
},
);
}),
});
if (!response.ok) {
throw new Error(`HTTP Error: ${response.status} ${response.statusText}`);
}
const data = await response.json();
if (data.errors && data.errors.length > 0) {
const message = data.errors.map((err) => err.message).join("; ");