【发布时间】:2018-08-18 06:40:48
【问题描述】:
我正在尝试在允许访问我的“/graphql”端点之前对用户进行身份验证。
根据apollo-server 关于设置上下文的文档,我可以做这样的事情。
app.use(
'/graphql',
bodyParser.json(),
graphqlExpress(req => {
// Some sort of auth function
const userForThisRequest = getUserFromRequest(req);
return {
schema: myGraphQLSchema,
context: {
user: userForThisRequest,
},
// other options here
};
}),
);
我正在尝试在占位符中使用 passportJS 的 authenticate() 函数来表示“某种身份验证函数”,但我似乎无法理解如何使用我可以访问的 'req' 参数。我应该在 bodyParser 中间件之后还是在 graphqlExpress 方法内部调用 passport.authenticate()?
所以我的问题是如何在这种情况下使用 passportJS 的身份验证机制?另外,这是在 Apollo-server 上实现身份验证的最佳方式吗?
【问题讨论】:
标签: passport.js graphql apollo apollo-server