1. 主要场景:
1) 用户访问注册页面
2) 系统生成验证码图片
3) 用户输入想要的ID、Email地址,想要的显示名称、密码、确认密码
4) 用户输入验证码
5) 用户提交注册请求
6) 系统检查验证码
7) 系统检查ID是否已经被注册,Email是否已经被注册,密码和确认密码是否一致
8) 系统保存未激活的账户信息
9) 系统生成激活链接,并发送至用户邮箱
10) 用户打开邮箱,访问激活链接
11) 系统解析激活链接,激活相关账户
12) 用户使用ID和密码登录
2. 扩展场景:
4a) 用户无法看清验证码,请求重新生成
4a-1) 跳转到步骤2)
6a) 系统检测到用户输入的验证码错误
6a-1) 系统提示验证码错误
6a-2) 跳转到步骤2)
7a) 系统检测到ID已被注册,或者Email已被注册,或者密码和确认密码不一致
7a-1) 系统提示相关错误信息
7a-2) 跳转到步骤2)
3. 接口设计
4. 模块划分:
Service: Facade模式中对外的统一接口,封装了所有下层细节
Web: UI相关的web界面
Persist: 账户信息的持久化及增、删、改、查。可以基于数据库也可以基于文件。
Captcha: 处理验证码的key生成、图片生成以及验证等,需借助第三方类库
Email: 处理邮件服务的配置、激活邮件的编写和发送等工作。