Asi que. Configuré un método DELETE para eliminar alquileres (un Rent ocurre cuando un User alquila un Item en mi base de datos).
Me gustaría asegurarme de comprobar que el único usuario que puede cancelar el alquiler es el que realmente alquiló el artículo. Ya implementé un cheque que evita que el usuario alquile un artículo de sí mismo.
Entonces, básicamente, antes de ejecutar la consulta de eliminación en esa fila en la tabla Rents , quiero verificar que la ID del usuario conectado actual coincida con la ID de usuario de esa fila específica en la tabla Rents , solo entonces se ejecutará la consulta.
Ejemplo de entrada de tabla de alquileres 
userId es el ID del User que alquiló un Item (itemId).
Configuré un decorador GetUser() personalizado
import { User } from './../entities/user.entity'; import { createParamDecorator, ExecutionContext } from '@nestjs/common'; export const GetUser = createParamDecorator( (data, ctx: ExecutionContext): User => { const req = ctx.switchToHttp().getRequest(); return req.user; }, ); Ahora, cuando llamo a mi método getMyItems para obtener todos los elementos que posee el usuario actual, el decorador GetUser() funciona bien ya que puedo acceder al usuario en el objeto de solicitud.
Controlador GetMyItems
@Get('/my') @ApiBearerAuth() async getMyItems(@GetUser() user: User): Promise<Item[]> { return this.itemsService.getMyItems(user); } Cuando trato de hacer lo mismo con el método cancelRent mencionado, parece que no funciona a pesar de que todo está configurado de la misma manera.
Cancelar controlador de alquiler
@Delete('/:id/cancel') async cancelRent( @Param('id') id: number, @GetUser() user: User, ): Promise<void> { return this.rentsService.cancelRent(id, user); } Cuando ejecuto console.log(user) en el controlador cancelRent, obtengo undefined , pero cuando lo ejecuto en el método getMyItems, devuelve el usuario actual normalmente. ¿Es porque es una solicitud DELETE y no una solicitud GET ?