我尝试在登录成功时更新我的GraphQL标头。我使用阿波罗。
我的默认设置是:
const { API_GRAPHQL_URL } = config;
const httpLink = createHttpLink({
uri: API_GRAPHQL_URL
});
const getToken = async () => await AsyncStorage.getItem('userToken');
const authLink = setContext(async (_, { headers }) => {
const token = await getToken();
return {
headers: {
...headers,
authorization: token ? `Bearer ${token}` : ''
}
};
});
const client = new ApolloClient({
link: authLink.concat(httpLink),
cache: new InMemoryCache()
});
但是,如果我没有登录,则令牌为null。登录成功后,我想更新标头或刷新以加载保存在本地存储中的令牌(使用React-Native)。
任何人都知道中间件是否存在或其他解决方案?
谢谢社区!