Apollo客户端未将查询发送到服务器

时间:2019-03-08 15:12:12

标签: vue-router apollo apollo-client vue-apollo

这对我来说非常。我正在尝试在我的Vue应用程序上进行身份验证。我正在发送登录查询,该查询返回带有查看器字段的有效负载。成功登录后,我重新加载页面。在每次更改路由时,我都实现了一个中间件,该中间件向服务器发送 viewer 查询,以检查当前用户是否已通过身份验证:

export const routerMiddleware: NavGuard = async (to, from, next) => {
    const { data, errors } = await apollo.query<{ viewer: any }>({
        query: VIEWER_QUERY,
        fetchPolicy: 'network-only',
    });
    const viewer = data.viewer;
    if (viewer) next()
    else next('/app');
};

我绝对知道调用了中间件,并且没有请求到达服务器。该查询返回data: { viewer: null },因此它似乎是从某个地方而不是从服务器获取数据,尽管将fetchPolicy设置为“仅网络”

我还有另一套中间件,它针对另一条路由设置了几乎相同的目标,该路由针对不同的查询,并且工作正常。我什至可以在同一个中间件中将两个请求彼此相邻,只有一个被触发到服务器。

我正在考虑这样做的潜在原因。它可以与上一个登录查询返回查看者字段吗?

我想如果没有更多上下文,很难找到答案,但是我不确定与此相关的上下文是什么。

这是查看器类型:

type Viewer {
  id: ID!
  name: Name
  email: String!
  ssn: String
  phone: String
  imageUrl: String
  thumbnailUrl: String
  language: String!
  admins: [Admin!]!
  employees: [Employee!]!
  jobs: Jobs!
  notifications: [Notification!]!
  invitations: [Invitation!]!
  zendeskToken: String!
}

type Query {
  viewer: Viewer
}

查看器查询

{
    viewer {
        id
        admins {
            id
            organisation {
                id
            }
        }
    }
}

0 个答案:

没有答案