Tengo una aplicación en la que estoy trabajando actualmente y todo lo demás funciona bien, excepto un punto final que es la actualización IsTokenExpired. Esto contiene un valor booleano que puede ser verdadero o falso. He estado tratando de actualizar este isTokenExpired durante algún tiempo y parece haberse dado por vencido. A continuación se muestra la lista de códigos:
restablecimiento de contraseña.servicio.ts
... async updateExpiryStatus( accessToken: string, isExpired: boolean ): Promise<any> { const expiryStatus = await this.passwordRepository.findOne({ where: { accessToken }, }); const result = await this.passwordRepository .createQueryBuilder('password_entity') .update(PasswordEntity) .set({ isExpired, }) .where('accessToken = :accessToken', { accessToken }) .execute(); console.log('===================================='); console.log({ expiryStatus, accessToken, isExpired }); console.log('===================================='); return result; } ...contraseña-reset.controller.ts
@Put('updateToken/:accessToken') updateExpiryStatus( @Param('accessToken') accessToken: string, @Body() isExpired: boolean ): Promise<string> { return this.passwordService.updateExpiryStatus(accessToken, isExpired); } } ...restablecimiento de contraseña.entity.ts
import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm'; @Entity('password_reset') export class PasswordEntity { @PrimaryGeneratedColumn() id: number; @Column() email: string; @Column({ unique: true }) accessToken: string; @Column({ default: true }) isExpired: boolean; }Si ya consulta la PasswordEntity con este
const expiryStatus = await this.passwordRepository.findOne({ where: { accessToken }, }); Entonces puedes hacer esto para actualizar isExpired
expiryStatus.isExpired = isExpired; await this.passwordRepository.save(expiryStatus); Esto actualizará el estado de la fila que obtiene con accessToken .
this.passwordRepository.save(expiryStatus) devolverá la fila recién actualizada.