update api reset password

This commit is contained in:
2024-11-27 19:00:17 +07:00
parent fd226a43ac
commit 7ec741f459
3 changed files with 28 additions and 8 deletions

View File

@ -13,6 +13,7 @@ import dayjs from 'dayjs'
import jwt from 'jsonwebtoken';
import fs from 'fs';
import { UserRole } from "../entity/users_roles";
import { v4 as uuidv4 } from 'uuid';
const log: Logger<ILogObj> = new Logger({ name: '[UserController]', type: 'pretty' });
@ -159,13 +160,17 @@ export class AuthController {
const param: User = await schema.validateAsync(req.params);
const userRepository = OrmHelper.DB.getRepository(User);
const userRefreshTokenRepository = OrmHelper.DB.getRepository(UserRefreshToken);
const user = await userRepository.findOne({
select: ['id', 'email', 'password', 'username'],
where: { username: param.username },
where: { email: param.email },
})
user.reset_token = uuidv4();
await userRepository.save(user);
//send email reset password
return ReturnHelper.successResponseAny(res, 200, Language.lang.success, {});
@ -239,6 +244,13 @@ export class AuthController {
/*
#swagger.tags = ['Auth']
#swagger.parameters['token'] = {
in: 'path',
description: 'Token',
required: true,
type: 'string'
}
#swagger.requestBody = {
required: true,
description: "This action will effect to user related token",
@ -254,18 +266,18 @@ export class AuthController {
try {
const schema = Joi.object().keys({
id: Joi.string().uuid().required().label('ID'),
reset_token: Joi.string().uuid().required().label('Token'),
password: Joi.string().required().label('Password'),
retype_password: Joi.ref('password'),
});
req.body.id = req.auth.data.id;
req.body.reset_token = req.params.token ?? '';
const param: User = await schema.validateAsync(req.body);
const userRepository = OrmHelper.DB.getRepository(User);
const data = await userRepository.findOneBy({ id: param.id });
const data = await userRepository.findOneBy({ reset_token: param.reset_token });
if (data != null) {
if (param.password) {