У меня проблемы с клиентом Apollo, и мне было интересно, может ли кто-нибудь помочь мне здесь.
Как я могу повторно выполнить свой запрос (с заголовками) после успешной мутации, которая возвращает меня на предъявителятокен?
Я обнаружил, что есть что-то, называемое refetchQueries, но, похоже, он игнорирует все заголовки, таким образом, и мой токен на предъявителя.
Скажем, у меня есть следующая мутация в моем компоненте Login:
<Mutation
mutation={LOGIN_USER}
refetchQueries={[{
query: GET_USER,
}]}
>
{(loginUser, { loading, error, data }) => {
if (data) {
cookies.set('token', data.loginUser.token)
}
return (
<form...
и следующий authLink в моем App.js:
const authLink = setContext((_, { headers }) => {
const token = cookies.get('token')
return {
headers: {
...headers,
authorization: token ? `Bearer ${token}` : null
},
}
})
Кажется, проблема в том, что функция authLink не работает при использовании refetchQueries (заголовки не отправляются).Когда я обновляю браузер, мой запрос работает нормально, тогда как cookie используется для получения токена, но, похоже, этого не происходит с refetchQueries ...
Итак, как я могу выполнить свой запрос после мутации стокен на предъявителя в заголовке или есть лучший способ сделать это?
Cheers