Files
micro-service-api/exthernal-ttc-api/src/middlewares/verifyEmailHandler.js

38 lines
1.4 KiB
JavaScript
Raw Normal View History

import Redis from 'ioredis';
import { GeneralService } from '../share/generalservice.js';
// import { sendError } from './response.js';
export async function verifyEmailHandler(req, res) {
const redis = new Redis();
const generalService = new GeneralService();
try {
const { email, token } = req.query;
const schema = req.body?.organization || 'nuttakit'; // 🧩 ใช้ schema ตาม org
const storedData = await redis.get(`verify:${email}`);
if (!storedData) {
return res.status(400).send('ลิงก์หมดอายุหรือไม่ถูกต้อง');
}
const { fname, lname, hashedPwd, token: storedToken } = JSON.parse(storedData);
if (token !== storedToken) {
return res.status(400).send('Token ไม่ถูกต้อง');
}
let sql = `
INSERT INTO ${schema}.usrmst (usrnam, usrthinam, usrthilstnam, usrpwd, usrrol)
VALUES ($1, $2, $3, $4, 'U')
`;
let param = [email, fname, lname, hashedPwd];
await generalService.executeQueryParam(sql, param);
await redis.del(`verify:${email}`);
res.send(`<h2>✅ ยืนยันอีเมลสำเร็จ บัญชีของคุณถูกสร้างแล้ว (${schema})</h2>`);
} catch (error) {
console.error('❌ [Verify Email Error]', error);
res.status(500).send('เกิดข้อผิดพลาดในระบบ');
}
}