Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

173
Views
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 answers
Answer question

0

cancelRent() falta @ApiBearerAuth()

about 4 years ago · Juan Pablo Isaza Report

0

Olvidé incluir AuthGuard() en mi Rents Controller.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!