38 lines
1.4 KiB
JavaScript
38 lines
1.4 KiB
JavaScript
|
|
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('เกิดข้อผิดพลาดในระบบ');
|
||
|
|
}
|
||
|
|
}
|