From cf61de639c1f815e763b6cb958d99d97226f55eb Mon Sep 17 00:00:00 2001 From: devthejo Date: Sun, 29 Jun 2025 23:04:18 +0200 Subject: [PATCH] Revert "fix(headless): use axios instead of apollo for auth" This reverts commit 644480182d8da2ca1197c919262d5a5df0817d25. --- src/auth/actions.js | 64 ++++++++++----------------------- src/auth/gql.js | 7 ---- src/network/NetworkProviders.js | 4 +-- src/network/axios.js | 13 +------ 4 files changed, 20 insertions(+), 68 deletions(-) diff --git a/src/auth/actions.js b/src/auth/actions.js index 14aab4a..86b7381 100644 --- a/src/auth/actions.js +++ b/src/auth/actions.js @@ -1,68 +1,40 @@ import * as Device from "expo-device"; import network from "~/network"; -import env from "~/env"; import { + REGISTER_USER_MUTATION, + LOGIN_USER_TOKEN_MUTATION, STORE_FCM_TOKEN_MUTATION, - REGISTER_USER_MUTATION_STRING, - LOGIN_USER_TOKEN_MUTATION_STRING, } from "~/auth/gql"; import { getDeviceUuid } from "./deviceUuid"; -// to support refresh auth in headless mode we'll use axios instead of apollo -// 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 { data } = await network.apolloClient.mutate({ + mutation: REGISTER_USER_MUTATION, + context: { + skipAuth: true, // Skip adding Authorization header }, - { - headers: { - // Skip adding Authorization header for this request - Authorization: undefined, - }, - }, - ); - - if (data.errors && data.errors.length > 0) { - const message = data.errors.map((err) => err.message).join("; "); - throw new Error(`GraphQL Error: ${message}`); - } - - const authToken = data.data.addOneAuthInitToken.authTokenJwt; + }); + const authToken = data.addOneAuthInitToken.authTokenJwt; return { authToken }; } export async function loginUserToken({ authToken }) { const deviceUuid = await getDeviceUuid(); - const { data } = await network.axios.post( - env.GRAPHQL_URL, - { - query: LOGIN_USER_TOKEN_MUTATION_STRING, - variables: { - authTokenJwt: authToken, - phoneModel: Device.modelName, - deviceUuid, - }, + const { data } = await network.apolloClient.mutate({ + mutation: LOGIN_USER_TOKEN_MUTATION, + variables: { + authTokenJwt: authToken, + phoneModel: Device.modelName, + deviceUuid, }, - { - headers: { - // Skip adding Authorization header for this request - Authorization: undefined, - }, + context: { + skipAuth: true, // Skip adding Authorization header }, - ); - - if (data.errors && data.errors.length > 0) { - const message = data.errors.map((err) => err.message).join("; "); - throw new Error(`GraphQL Error: ${message}`); - } - - const userToken = data.data.doAuthLoginToken.userBearerJwt; + }); + const userToken = data.doAuthLoginToken.userBearerJwt; return { userToken }; } diff --git a/src/auth/gql.js b/src/auth/gql.js index e9e3bf3..36dbc19 100644 --- a/src/auth/gql.js +++ b/src/auth/gql.js @@ -1,5 +1,4 @@ import { gql } from "@apollo/client"; -import { print } from "graphql"; export const REGISTER_USER_MUTATION = gql` mutation registerUser { @@ -37,9 +36,3 @@ export const STORE_FCM_TOKEN_MUTATION = gql` } } `; - -// Convert GraphQL documents to strings for Axios requests -export const REGISTER_USER_MUTATION_STRING = print(REGISTER_USER_MUTATION); -export const LOGIN_USER_TOKEN_MUTATION_STRING = print( - LOGIN_USER_TOKEN_MUTATION, -); diff --git a/src/network/NetworkProviders.js b/src/network/NetworkProviders.js index 43156ef..7fdc06e 100644 --- a/src/network/NetworkProviders.js +++ b/src/network/NetworkProviders.js @@ -5,7 +5,7 @@ import { ApolloProvider } from "@apollo/client"; import createApolloClient from "~/network/apollo"; -import createAxios from "~/network/axios"; +// import createAxios from "~/network/axios"; import createKy from "~/network/ky"; import network from "~/network"; @@ -41,8 +41,6 @@ initializeNewApolloClient(); const oaFilesKy = createKy({ prefixUrl: env.OA_FILES_URL + "/" }, { store }); network.oaFilesKy = oaFilesKy; -network.axios = createAxios(); - export default function NetworkProviders({ children }) { const [key, setKey] = useState(0); diff --git a/src/network/axios.js b/src/network/axios.js index 8df8c30..43e2660 100644 --- a/src/network/axios.js +++ b/src/network/axios.js @@ -24,19 +24,8 @@ export default function createAxios(baseOptions = {}) { "Content-Type": "application/json", }, }; - - // Only add bearer token if Authorization header is not explicitly set to undefined - if (config.headers.Authorization !== undefined) { - setBearerHeader(defaultConfig.headers, getAuthState().userToken); - } - + setBearerHeader(defaultConfig.headers, getAuthState().userToken); defaultsDeep(config, defaultConfig); - - // Clean up undefined Authorization header - if (config.headers.Authorization === undefined) { - delete config.headers.Authorization; - } - return config; }, function (error) {