账户服务
有关于账户的操作有:账户登陆, 账户注册, 发送验证邮件等
发送邮件
发送邮件是为了验证用户的合理性, 防止恶意注册账户。 同时, 我们在发送邮件是可以使用消息队列进行异步操作, 加快访问速度。
- 验证: regexp验证邮箱
\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*
- 生成邮件
- 存入redis
- 异步发送邮件
注册
- 验证
不仅要验证数据的合法性, 同时要保证数据库中不存在该账户的信息 - 创建账户
在设计时, 账户, 用户信息是分开存放的。所以这里应该采用某一种分布式事物解决方案, 而不是空堆代码, 不利于维护。
登陆
- 验证
- 生成Token
这里的是JWT + Token的解决方案。
//todo 但是我认为还是可以将Token存入Redis, 以此来完成单点登陆, 踢人下线等功能。