一个可能的解决方法是使用任何其他请求链接将创建的链接包装起来,并将凭据选项传递给该链接。以下是一个示例:
import { ApolloLink, concat } from '@apollo/client';
import { createUploadLink } from 'apollo-upload-client'
...
const httpLink = createUploadLink({
uri: 'https://example.com/graphql',
credentials: 'include'
});
const authMiddleware = new ApolloLink((operation, forward) => {
operation.setContext({
headers: {
Authorization: `Bearer ${token}`
}
});
return forward(operation);
});
const link = concat(authMiddleware, httpLink);
在这个示例中,createUploadLink
用于创建上传链接和一个带有jwt的认证中间件。然后,我们使用concat
来将两者结合在一起,以创建link
。最后,我们将link
用于Apollo客户端的构建。