在Mongoose中自动删除几毫秒后创建的令牌,通常涉及到设置一个过期时间(TTL,Time To Live)并在数据库中存储这个令牌及其过期时间。以下是实现这一功能的基础概念和相关步骤:
expires: '5m'
表示这个字段会在5分钟后自动删除。问题:令牌没有按预期删除。
原因:
解决方法:
expires
字段。// 示例脚本,用于手动清理过期令牌
const Token = require('./models/Token'); // 假设你的模型文件路径是./models/Token
async function cleanExpiredTokens() {
const cutoffDate = new Date();
cutoffDate.setMinutes(cutoffDate.getMinutes() - 5); // 设置5分钟前的时间作为截止时间
await Token.deleteMany({ createdAt: { $lt: cutoffDate } });
}
cleanExpiredTokens().then(() => console.log('Expired tokens cleaned up.'));
通过上述方法,你可以有效地在Mongoose中管理令牌的生命周期,并确保过期的令牌被自动删除。
领取专属 10元无门槛券
手把手带您无忧上云