Express 如何从NestJS中的GraphQL解析器设置会话?
我有一个GraphQL变异,它为我的NestJS应用程序处理身份验证。它在express会话中设置登录信息。这种方法在“香草速递”中效果很好。但是,当我在NestJS中执行此操作时,会话不会更改。我不知道我哪里出错了 我尝试使用guard设置express会话,但它也不起作用Express 如何从NestJS中的GraphQL解析器设置会话?,express,session,authentication,graphql,nestjs,Express,Session,Authentication,Graphql,Nestjs,我有一个GraphQL变异,它为我的NestJS应用程序处理身份验证。它在express会话中设置登录信息。这种方法在“香草速递”中效果很好。但是,当我在NestJS中执行此操作时,会话不会更改。我不知道我哪里出错了 我尝试使用guard设置express会话,但它也不起作用 @Mutation('doLogin') async doLogin(@Parent() parent: any, @Args() args: any, @Context() context: any, @Info(
@Mutation('doLogin')
async doLogin(@Parent() parent: any, @Args() args: any, @Context() context: any, @Info() info: any) {
const login: Login = await authenticationService.doLogin(args.loginInput);
context.session.session.login = login;
console.log(context.session.session);
return login;
}
当我检查终端时,会话就像我想要的那样被更改
Session {
cookie:
{ path: '/',
_expires: 2019-07-15T04:48:50.599Z,
originalMaxAge: 3600000,
httpOnly: true,
secure: true },
login:
Login {
id: 1,
username: 'admin',
name: 'admin',
email: 'admin@email.com',
role: 'ADMIN',
active: true
}
但是当它离开解析程序时,登录部分就不再存在了您是否查看了GraphQL(在页面底部)上的特定部分,以及如何将req添加到传入请求的上下文中,以便您可以使用保护?我已经这样做了,我已将req添加到GraphQL上下文中。我可以在解析器中访问它。但是,当我试图修改它时,req.session在它退出解析器时并没有改变。您是否已经了解了GraphQL上的特定会话(在页面底部)以及如何将req添加到传入请求的上下文中,以便您可以使用保护?我已经做了,我已经将req添加到GraphQL上下文中了。我可以在解析器中访问它。但是,当我试图修改它时,req.session在解析程序中退出时没有改变。