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