Estoy usando ApolloProvider con dos autorizaciones, una para invitados y otra para usuarios registrados. El cliente predeterminado tiene la autorización de invitado y, al iniciar sesión, creo un nuevo cliente con tokens específicos especiales. Sin embargo, las consultas que requieren autorizaciones de usuario que realizo poco después a veces devuelven el error 401 Permission Denied . ¿Cómo puedo asegurarme de que estoy usando el cliente correcto para mi consulta?
Aquí hay un código de muestra:
const CustomApolloProvider = ({ children }) => { const [client, setClient] = useState(getGuestClient()); // gets called when user signs in const onUserSignIn = () => { setClient(getUserClient()); }); return <ApolloProvider client={client}>{children}</ApolloProvider>; };Otro archivo que arroja un error:
const [ checkUserExists, // needs special permissions { data: checkUserExistsData, loading: loadingCheckUserExistsData, error: checkUserExistsError, }, ] = useLazyQuery(gql(getUser), { fetchPolicy: 'network-only' }); // gets called when user signs in const onUserSignIn = () => { await checkUserExists(); });