import { setContext } from '@apollo/client/link/context';
const authLink = setContext((_, { headers }) => {
// 获取身份验证令牌
const token = getToken();
// 返回包含身份验证令牌的头部
return {
headers: {
...headers,
authorization: token ? `Bearer ${token}` : ''
}
}
});
const link = concat(authLink, httpLink);
在这里,我们使用setContext函数从每个请求中获取当前的头部,并将其与身份验证令牌合并。
const client = new ApolloClient({
cache: new InMemoryCache(),
link: link,
});
现在,每个GraphQL请求都会添加身份验证令牌头,以确保用户对请求操作拥有对应的权限和授权访问。
以上代码示例可以帮助我们为子图添加动态头部。