如何在graphQL上下文中对用户进行反序列化

时间:2017-05-02 04:21:46

标签: express oauth-2.0 graphql passport.js

我有一个express服务器,我正在使用express-graphql。我也使用passportpassport-google-oauth20进行身份验证。

我在没有上下文的情况下设置我的graphQl

router.use(graphqlHTTP({
  schema,
  graphiql: true
}));

这表示request作为resolver传递到我的context

const rootResolvers = {
  Query: {
    hello: (obj, args, context) => {
      console.log(context.headers.cookie);
      return "hello"
    }
  }
};

我可以看到请求中的cookie。如何使用cookie来到deserialize用户? passport通常会为我执行此操作,但在这种情况下,我需要在deserialize生命周期之外调用passport函数。我该怎么做?

1 个答案:

答案 0 :(得分:1)

user附加request,已经deserialized。在resolver内,所有需要做的就是访问user

const rootResolvers = {
  Query: {
    hello: (obj, args, context) => {
      console.log(context.user);
      return "hellllo"
    }
  }
};

现在无论如何你都可以使用它。