gpt4 book ai didi

javascript - 更新 apollo 客户端实例的 uri

转载 作者:行者123 更新时间:2023-12-03 01:34:57 32 4
gpt4 key购买 nike

我正在将 Angular Apollo 用于我们的一个项目。我正在创建 apollo 客户端:

this.apollo.create({
link: this.httpLink.create({ uri: `${environment.apiBase}/graphql?access_token=${this.tokenService.token}`}),
cache: new InMemoryCache()
})

由于我们的 uri 有一个访问 token ,该 token 在特定时间点后也会过期,因此我们必须刷新它并获取新的访问 token ,从而获得一个新的 uri。

我在apollo文档中找不到任何关于更新uri的方法(也许我错过了?),而且如果我创建一个这样的新实例,它会抛出一个错误,表明apollo客户端已经是存在。

有什么办法可以更新uri吗?

最佳答案

我知道它不是 Apollo Angular 文档的一部分(欢迎 PR!),但我在 apollo-angular-link-http 的自述文件中描述了它。

有两种方法:

使用 Apollo Link 拦截查询并在上下文中设置 uri 属性

const authMiddleware = setContext((operation, { uri }) => {
return refreshToken().then(res => ({
uri: this.getURI()
})
}))

或者使用 Angular 的 HttpClient 拦截器拦截请求并更改端点。

Link to the package

关于javascript - 更新 apollo 客户端实例的 uri,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51112677/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com