1
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
22
api/middleware/redis_proxy.js
Normal file
22
api/middleware/redis_proxy.js
Normal 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];
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user