svelte-apollo
svelte-apollo copied to clipboard
How is it possible to update the client with a new JWT in headers?
<script lang="ts">
import { ApolloClient, InMemoryCache } from "@apollo/client";
import { setClient } from "svelte-apollo";
export let token: string = "";
const cache = new InMemoryCache();
const client = new ApolloClient({
uri: import.meta.env.VITE_HASURA_GQL_URL,
cache,
headers: {
Authorization: `Bearer ${token}`,
},
});
setClient(client);
</script>
<slot />
Passing in an updated token via props does not cause a re-render. Since the whole basis of this library is passing the Client through Context, and Context only being able to be set during component initialization, I do not see how it is possible to update the Client after initialization, such as when a new token is provided through a refresh token operation.
Please advise.
It should not re-render in order for your request to grab the most recent token.
every time you request a method post to your request URL (your graphql endpoint) you will call it with the most recent token.
did you checked your network tab to verify your request includes your most recent token?