Как я могу сделать запрос Apollo на обновление моего токена аутентификации, когда я получаю НЕАВТОРИТЕЛЬНУЮ ошибку (до создания экземпляра Apollo-Client)?
Может быть, мне нужно использовать другую ссылку?
import { Observable } from 'apollo-link'
import { equals, forEach, isNil, unless } from 'ramda'
const promiseToObservable = promise =>
new Observable(subscriber => {
promise.then(
value => {
if (subscriber.closed) return
subscriber.next(value)
subscriber.complete()
},
err => subscriber.error(err),
)
return subscriber
})
const errorLink = onError(
({ graphQLErrors, operation, forward }) => {
const refreshToken = () => {
const someQuery = `mutation {
updateToken {
token
refreshToken
}
}`,
/* I NEED TO MAKE REQUEST HERE TO UPDATE TOKEN WITH SAME HEADERS */
})
}
const checkGraphQLErrors = unless(
isNil,
forEach(({ extensions: { code } }) => (
equals('UNAUTHENTICATED', code) &&
promiseToObservable(refreshToken()).flatMap(() => forward(operation))
)),
)
checkGraphQLErrors(graphQLErrors)
return false
},
)