有一个 Guard 检查令牌:
@Injectable()
export class AuthGuard implements CanActivate {
canActivate(
context: ExecutionContext,
): boolean | Promise<boolean> | Observable<boolean> {
const request: Request = context.switchToHttp().getRequest();
const token = ExtractJwt.fromAuthHeaderAsBearerToken()(request);
try {
const payload = JwtService.getPayload(token);
// тут нужно в реквест прокинуть payload
}
catch (e) {
return false;
}
return true;
}
}
好吧,控制器:
@Post('/v1/saves')
@UseGuards(AuthGuard)
async savesSave(@Body(new ValidationPipe({transform: true})) saveData) {
// как здесь прочитать то, что установил в Guard'е?
}
到目前为止,我只这样做了:
装饰器:
那么控制器就变成了:
但是
request["payload"]
看起来很丑=\