如何解决Angular Apollo中间件未刷新身份验证令牌
我正在尝试使用Apollo Angular在请求标头中设置身份验证令牌。
当我第一次加载应用程序时,我的中间件(https://www.apollographql.com/docs/angular/recipes/authentication/#header)会从本地存储初始化令牌,但它不会在我发送的每个请求中都验证令牌。
我发现的唯一解决方法是在登录时强制刷新页面。
我希望中间件每次发送请求时都验证本地存储令牌。
如果有人对此有解决方案或其他方法可以实现,我将不胜感激。
谢谢!
graphql.module.ts
export function provideApollo(httpLink: HttpLink) {
const basic = setContext((operation,context) => ({
headers: {
Accept: "charset=utf-8",},}));
// Get the authentication token from local storage if it exists
const token = localStorage.getItem(TOKEN_KEY);
const auth = setContext((operation,context) => ({
headers:
token !== null
? {
Authorization: `Bearer ${token}`,}
: {},}));
const link = ApolloLink.from([basic,auth,httpLink.create({ uri })]);
const cache = new InMemoryCache();
return {
link,cache,};
}
@NgModule({
exports: [HttpClientModule,ApolloModule,HttpLinkModule],providers: [
{
provide: APOLLO_OPTIONS,useFactory: provideApollo,deps: [HttpLink],],})
export class GraphQLModule {}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。