本文共 1469 字,大约阅读时间需要 4 分钟。
要设计一个包含验证码的验证系统,需要确保每次验证都生成一个新的验证码,并在指定时间过期。系统应支持更新验证码并统计未过期验证码的数量。以下是实现步骤和代码:
类定义与构造:
AuthenticationManager,包含private成员变量ttl(有效时间)和map<string, int> token(存储验证码信息)。ttl值。生成验证码:
generate方法接受tokenId和currentTime,将tokenId对应的过期时间设为currentTime + ttl。更新验证码:
renew方法首先检查tokenId是否存在且未过期。如果满足条件,更新过期时间为currentTime + ttl。统计未过期验证码:
countUnexpiredTokens遍历map,统计过期时间大于currentTime的tokenId数量。优先处理过期事件:
以下是实现代码:
#include
使用说明:
AuthenticationManager初始化时,设置ttl值。generate方法根据提供的tokenId和currentTime生成新的过期时间。renew方法检查tokenId是否存在且未过期,若满足条件更新过期时间。countUnexpiredTokens方法返回当前时间点未过期的tokenId数量。这个设计确保了验证码的生成、更新和统计高效且安全,同时处理过期事件的优先级确保系统准确性。
转载地址:http://rpdg.baihongyu.com/