This commit is contained in:
张成
2025-12-19 17:44:29 +08:00
parent a549d39f61
commit 155abf2381
2 changed files with 30 additions and 8 deletions

View File

@@ -6,7 +6,7 @@
const Framework = require("../../framework/node-core-framework.js");
const dayjs = require('dayjs');
const email_service = require('../services/email_service.js');
const redis = require('../../middleware/redis_proxy');
module.exports = {
/**
* @swagger
@@ -550,7 +550,7 @@ module.exports = {
async function sendEmailCode(email) {
try {
// 获取框架的 Redis 服务
const redis_service = Framework.getServices().redisService;
// 统一邮箱地址为小写,避免大小写不一致导致的问题
const email_lower = email.toLowerCase().trim();
@@ -569,7 +569,7 @@ async function sendEmailCode(email) {
// 存储到 Redis设置 5 分钟过期时间300秒
try {
await redis_service.set(redis_key, JSON.stringify(code_data), 300);
await redis.set(redis_key, JSON.stringify(code_data), 300);
} catch (redis_error) {
console.error(`[邮箱验证] Redis 存储失败: ${email_lower}`, redis_error);
return {
@@ -586,7 +586,7 @@ async function sendEmailCode(email) {
if (!email_result.success) {
// 如果邮件发送失败,删除已生成的验证码
try {
await redis_service.del(redis_key);
await redis.del(redis_key);
} catch (del_error) {
console.error(`[邮箱验证] 删除验证码失败:`, del_error);
}
@@ -621,7 +621,7 @@ async function sendEmailCode(email) {
async function verifyEmailCode(email, code) {
try {
// 获取框架的 Redis 服务
const redis_service = Framework.getServices().redisService;
const redis = Framework.getServices().redisService;
// 统一邮箱地址为小写,避免大小写不一致导致的问题
const email_lower = email.toLowerCase().trim();
@@ -634,7 +634,7 @@ async function verifyEmailCode(email, code) {
// 从 Redis 获取验证码
let cached_str;
try {
cached_str = await redis_service.get(redis_key);
cached_str = await redis.get(redis_key);
} catch (redis_error) {
console.error(`[邮箱验证] Redis 获取失败:`, redis_error);
return {
@@ -658,7 +658,7 @@ async function verifyEmailCode(email, code) {
} catch (parse_error) {
console.error(`[邮箱验证] 解析验证码数据失败:`, parse_error);
try {
await redis_service.del(redis_key);
await redis.del(redis_key);
} catch (del_error) {
console.error(`[邮箱验证] 删除异常数据失败:`, del_error);
}
@@ -681,7 +681,7 @@ async function verifyEmailCode(email, code) {
// 验证成功后删除缓存
try {
await redis_service.del(redis_key);
await redis.del(redis_key);
} catch (del_error) {
console.error(`[邮箱验证] 删除验证码失败:`, del_error);
}

View File

@@ -0,0 +1,22 @@
/**
* Redis 服务代理
* 从 Framework 获取 redisService
*/
const Framework = require("../framework/node-core-framework.js");
module.exports = new Proxy({}, {
get(_, prop) {
const services = Framework.getServices();
const redisService = services?.redisService;
if (!redisService) {
throw new Error('Redis service not available. Framework may not be initialized.');
}
return typeof redisService[prop] === 'function'
? redisService[prop].bind(redisService)
: redisService[prop];
}
});