如何在我的 graphQL 上下文中反序列化用户
Posted
技术标签:
【中文标题】如何在我的 graphQL 上下文中反序列化用户【英文标题】:How do I deserialize the user in my graphQL context 【发布时间】:2017-09-29 12:22:14 【问题描述】:我有一个express
服务器,我在其中使用express-graphql
。我也在使用passport
和passport-google-oauth20
进行身份验证。
我正在设置我的graphQl
没有上下文:
router.use(graphqlHTTP(
schema,
graphiql: true
));
这意味着request
作为context
传递到我的resolver
。
const rootResolvers =
Query:
hello: (obj, args, context) =>
console.log(context.headers.cookie);
return "hello"
;
我可以从请求中看到cookie
。如何使用cookie
到达deserialize
用户? passport
通常为我执行此操作,但在这种情况下,我需要在 passport
生命周期之外调用 deserialize
函数。我该怎么做?
【问题讨论】:
【参考方案1】:request
附加了一个user
,它已经是deserialized
。在resolver
中,只需访问user
:
const rootResolvers =
Query:
hello: (obj, args, context) =>
console.log(context.user);
return "hellllo"
;
现在你可以随心所欲地使用它了。
【讨论】:
以上是关于如何在我的 graphQL 上下文中反序列化用户的主要内容,如果未能解决你的问题,请参考以下文章
如何解决错误:无效的 JSON 输入:无法从 START_ARRAY 令牌中反序列化 Topic 实例
JSON 解析错误:无法从 START_OBJECT 令牌中反序列化 `byte[]` 的实例