Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nestjs 如何在具有嵌套会话的保护中使用会话对象_Nestjs - Fatal编程技术网

Nestjs 如何在具有嵌套会话的保护中使用会话对象

Nestjs 如何在具有嵌套会话的保护中使用会话对象,nestjs,Nestjs,在NestJS中,使用nest session,我想在一个保护中使用session对象(CanActivate) 在控制器的操作中,这是通过使用@Session()完成的但我找不到也不知道如何使用保护获取这些数据。首先,创建一个包含会话对象并扩展express Request对象的接口,因为会话对象是nestjs创建的字段,在请求对象上不存在 从“express”导入{Request}; 导出接口IRequest扩展请求{ 届会:任何; } 然后,您必须导入接口,创建此类型的变量,然后使用执行

在NestJS中,使用
nest session
,我想在一个保护中使用session对象(
CanActivate


在控制器的操作中,这是通过使用
@Session()完成的
但我找不到也不知道如何使用保护获取这些数据。

首先,创建一个包含会话对象并扩展express Request对象的接口,因为会话对象是nestjs创建的字段,在请求对象上不存在

从“express”导入{Request};
导出接口IRequest扩展请求{
届会:任何;
}
然后,您必须导入接口,创建此类型的变量,然后使用执行上下文获取请求,就是说,req变量包含请求对象,您可以使用req.session获取会话对象

从'@nestjs/common'导入{Injectable,CanActivate,ExecutionContext};
从“/app.interface”导入{IRequest}//导入接口
@可注射()
导出类Guard实现CanActivate{
构造函数(){}
canActivate(上下文:ExecutionContext):布尔值{
const-req:IRequest=context.switchToHttp().getRequest();//请求对象
const session=req.session;//会话对象
/*
你想在这里做什么就做什么。。。
*/
返回true;
}
}
您可以在此处找到有关请求对象的更多信息:

谢谢,效果很好!我必须更改类型以保留
session
的原始属性:
export-type-IRequest=Request&{session:any}。(显然我没有使用任何