添加后端接口修改前端及小程序
This commit is contained in:
36
government-backend/utils/tokenBlacklist.js
Normal file
36
government-backend/utils/tokenBlacklist.js
Normal file
@@ -0,0 +1,36 @@
|
||||
// token黑名单管理模块
|
||||
|
||||
// 简单的内存存储,实际生产环境中可以替换为Redis或数据库
|
||||
const tokenBlacklist = new Set();
|
||||
|
||||
/**
|
||||
* 将token添加到黑名单
|
||||
* @param {string} token - JWT令牌
|
||||
* @param {number} expiresIn - 过期时间(毫秒)
|
||||
*/
|
||||
exports.addToBlacklist = (token, expiresIn) => {
|
||||
tokenBlacklist.add(token);
|
||||
|
||||
// 设置定时任务,在token过期后从黑名单中移除
|
||||
setTimeout(() => {
|
||||
tokenBlacklist.delete(token);
|
||||
console.log(`Token已从黑名单中移除: ${token.substring(0, 20)}...`);
|
||||
}, expiresIn);
|
||||
};
|
||||
|
||||
/**
|
||||
* 检查token是否在黑名单中
|
||||
* @param {string} token - JWT令牌
|
||||
* @returns {boolean} - 如果token在黑名单中返回true,否则返回false
|
||||
*/
|
||||
exports.isBlacklisted = (token) => {
|
||||
return tokenBlacklist.has(token);
|
||||
};
|
||||
|
||||
/**
|
||||
* 获取当前黑名单大小
|
||||
* @returns {number} - 黑名单中的token数量
|
||||
*/
|
||||
exports.getBlacklistSize = () => {
|
||||
return tokenBlacklist.size;
|
||||
};
|
||||
Reference in New Issue
Block a user