【发布时间】:2021-03-09 16:38:27
【问题描述】:
我使用的是 Nest 版本 ^6.7.2
我正在尝试创建一个从请求中获取 req.user 值的 createParamDecorator。
在 createParamDecorator 内部,req.user 有一个值,但是当我尝试使用装饰器在控制器中获取该值时,该值是未定义的。
const AuthSession = createParamDecorator((data, req) => {
console.log(req.user); // session data
return req.user;
});
Controller()
export default class AuthController {
@Get("/token/ping")
@UseGuards(AuthGuard("jwt"))
tokenPing(@AuthSession() session: Session) {
console.log(session); // undefined
return session;
}
}
编辑:我刚刚尝试更新到nestjs v7,我遇到了同样的问题
import { createParamDecorator, ExecutionContext } from "@nestjs/common";
const AuthSession = createParamDecorator((data: any, ctx: ExecutionContext) => {
return { message: "asdf" };
});
export default AuthSession;
@Controller()
export default class AuthController {
@Get("/token/ping")
@UseGuards(AuthGuard("jwt"))
tokenPing(@AuthSession() session: Session) {
console.log(session); // undefined
return session;
}
}
【问题讨论】:
标签: javascript node.js typescript nestjs