7.3. 验证码库
说明
验证码的发送流程:
- 接收用户传参的 phone 或者 email,作为 key;
- 生成一个随机 6 位数字 code;
- 将 key 以及对应的 code 存入 Redis 中,过期时间为 15 分钟(可配置);
- 将 code 发送给 phone 或 email 。
验证流程:
- 用户传参的 phone 或者 email 为 key,和输入的验证码 answer ;
- 服务端接收到上面两个数据后,凭着 key 到 redis 中查询数据;
- 数据取出来后和 answer 进行匹对。
以上逻辑不应该放在控制器中,应当有独立的包来存放。
1. Store interface
验证码模块不应该跟特定的存储服务做绑定,所以我们创建了 Store interface 。未来如果要使用其他内存服务器(例如 Memcached),可以很方便切换。
创建接口:
pkg/verifycode/store_interface.go