fix(core): Use JWT as reset password token (#6714)

* use jwt to reset password

* increase expiration time to 1d

* drop user id query string

* refactor

* use service instead of package in tests

* sqlite migration

* postgres migration

* mysql migration

* remove unused properties

* remove userId from FE

* fix test for users.api

* move migration to the common folder

* move type assertion to the jwt.service

* Add jwt secret as a readonly property

* use signData instead of sign in user.controller

* remove base class

* remove base class

* add tests
This commit is contained in:
Ricardo Espinoza
2023-07-24 17:40:17 -04:00
committed by GitHub
parent c2511a829c
commit 89f44021b9
19 changed files with 209 additions and 146 deletions

View File

@@ -0,0 +1,29 @@
import type { MigrationContext, ReversibleMigration } from '@db/types';
import { TableColumn } from 'typeorm';
export class RemoveResetPasswordColumns1690000000030 implements ReversibleMigration {
async up({ queryRunner, tablePrefix }: MigrationContext) {
await queryRunner.dropColumn(`${tablePrefix}user`, 'resetPasswordToken');
await queryRunner.dropColumn(`${tablePrefix}user`, 'resetPasswordTokenExpiration');
}
async down({ queryRunner, tablePrefix }: MigrationContext) {
await queryRunner.addColumn(
`${tablePrefix}user`,
new TableColumn({
name: 'resetPasswordToken',
type: 'varchar',
isNullable: true,
}),
);
await queryRunner.addColumn(
`${tablePrefix}user`,
new TableColumn({
name: 'resetPasswordTokenExpiration',
type: 'int',
isNullable: true,
}),
);
}
}