首页 > 解决方案 > Nuxt 阿波罗认证

问题描述

我尝试使用 nuxt 和 apollo 构建身份验证。登录和注册非常简单,也可以设置 jwt 令牌,但是当我的令牌过期并且我尝试获取刷新令牌或注销我的用户时,我收到以下错误。

Invariant Violation
Store reset while query was in flight (not completed in link chain)

因为我定义的错误处理程序nuxt.config.js不起作用,所以我尝试构建自己的客户端。

所以我设置了apollo.clientConfigs.default~/graphql/config.ts的看起来像

export default ({ app }: Context) => {
  const errorLink = onError(({ graphQLErrors, networkError, operation, forward }) => {
    if (graphQLErrors) {
      graphQLErrors.map(async (err) => {
        if (err?.extensions?.exception.status === 401) {
          await app.$apolloHelpers.onLogout()
        }

        return err
      })

      return forward(operation)
    }

    if (networkError) {
      console.log(networkError, 'and another one!')
      return forward(operation)
    }

    return forward(operation)
  })

  return {
    httpEndpoint: 'http://localhost:3001/graphql',
    link: from([errorLink as any])
  }
}

标签: vue.jsnuxt.jsapollo

解决方案


推荐阅读