Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

168
Vistas
Obtener el usuario conectado actual - NestJS

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 ingrese la descripción de la imagen aquí

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 ?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

cancelRent() falta @ApiBearerAuth()

about 4 years ago · Juan Pablo Isaza Denunciar

0

Olvidé incluir AuthGuard() en mi Rents Controller.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda