-web-service

This commit is contained in:
2025-11-11 15:11:56 +07:00
parent 9ad26fa5ef
commit fcf59ce5db
21 changed files with 537 additions and 253 deletions

View File

@@ -0,0 +1,38 @@
import Redis from 'ioredis';
import bcrypt from 'bcrypt';
import { sendError } from '../utils/response.js';
import { GeneralService } from '../share/generalservice.js';
export class ResetPasswordService {
constructor() {
this.redis = new Redis();
this.generalService = new GeneralService();
}
async resetPassword(email, token, newPassword) {
let database = '';
const storedToken = await this.redis.get(`reset:${email}`);
if (!storedToken || storedToken !== token) {
throw sendError('Token ไม่ถูกต้องหรือหมดอายุ', 'Invalid or expired token');
}
await this.redis.del(`reset:${email}`);
// อัปเดตรหัสผ่านในฐานข้อมูลจริง
const hashedPwd = await bcrypt.hash(newPassword, 10);
let sql = `
UPDATE usrmst SET usrpwd = $1 WHERE usrnam = $2
`
let param = [hashedPwd, email];
await this.generalService.executeQueryParam(database, sql, param);
this.generalService.devhint(1, 'resetpasswordservice.js', `Password reset successful (${email})`);
return {
code: '200',
message: 'successful',
message_th: 'รีเซ็ตรหัสผ่านสำเร็จ'
};
}
}