我是GraphQL的新手,并且对Node有一定的经验。
我正在使用我的应用程序中的通行证登录用户,因此我的req
将在包含用户信息的快递单中附加req.user
。
现在,由于我正在使用GraphQL,如何将req.user从我的主应用程序传递给GraphQL? (或者GraphQL本身将有权访问req,从而有权访问req.user?)
我有一个简单的GraphQL模式
app.use("/graphql", expressGraphQL({
schema: schema,
graphiql: true
}));
对于初学者来说,我找不到任何使用护照对用户进行身份验证的教程,因此我考虑过使用静态的APi路由来使用护照对我的用户进行身份验证,然后传递req.user
答案 0 :(得分:3)
您可以将用户资料放入defaults:
-
scope:
type: mycollection
values:
layout: a_custom_layout
anyvar: a_custom_var
context
并在解析器中获取上下文。 GraphQL.js模式中的每个解析器都接受四个位置参数:
app.use("/graphql", expressGraphQL({
schema: schema,
graphiql: true,
context: ({ req }) => ({
user: req.user
})
}));
答案 1 :(得分:1)
在节点中使用"graphql": "^14.0.2"
,我可以像这样使用req
作为解析器参数(在app.use
部分中没有任何其他特殊配置):
fieldName(args, req) {
console.log(req.user);
}