我无法弄清楚如何正确访问Apollo Server实例中的已解析请求对象。我似乎遵循有关初始化过程的文档,但是我无法做到这一点。 我的目标是尝试设置基于会话的基本身份验证过程,即在登录解析器成功运行后,我想在用户会话中设置身份验证状态。我可以看到cookie是从我的React客户端和游乐场发送的,请求对象本身已经传递了,但是我不能真正使用它。也许我需要额外的中间件?预先感谢。
这是代码的相关部分。
const sessionConfig = {
name: 'abc',
secret: 'muchsecret',
saveUninitialized: true,
resave: true,
store: new FileStore(),
cookie: {
httpOnly: true,
maxAge: Date.now() + (30 * 24 * 60 * 60 * 1000),
},
};
const middleware = [
morgan('tiny'),
cors(),
session(sessionConfig),
express.static(process.env.RAZZLE_PUBLIC_DIR),
];
const app = express().use(middleware);
const apolloServer = new ApolloServer({
playground: { settings: { 'request.credentials': 'include' } },
typeDefs,
resolvers,
context: req => {
// Logs raw request, req: { IncomingMessage: {...} } etc
console.log(req);
/* These are all undefined /*
console.log(req.headers);
console.log(req.body);
console.log(req.session);
return { models, req };
},
});
apolloServer.applyMiddleware({
app,
path: '/graphql',
});