学习日记用户取回密码(重置密码)分析设计

  用户重置密码的流程设计如下:

  1、用户忘记密码,请求重置密码;

  2、检测用户是否在72小时内请求过重置密码,若是,给出提示消息,中止;否则继续;

  3、系统发一封包括用户ID和随机产生的6位Token到用户注册时留下的信箱,同时记下发送邮件的时间;

  4、系统每隔1小时检测取回密码的用户的邮件发送时间,如果没有超过72小时,则继续检测;如果超过72小时,则删除用户重置密码的记录,用户需要重新请求发送密码;

  5、用户收到重置密码的邮件,点击重置密码的链接,登录到重置密码的页面,用户输入新密码两遍;

  6、如果用户在重置密码页面输入的用户ID和Token都正确并且两次新密码一致,则系统接受新密码,并经MD5加密后,存入数据库,新密码生效,引导用户转往用户登录页面,同时,删除用户重置密码的记录;

  7、如果用户在重置密码页面输入的用户ID和Token有误或两次密码不一致或者密码字符非法,返回重置密码的页面,提示用户错误和重新输入新密码,直到用户输入正确或取消重置密码的过程;

  在分析了学习日记重置密码流程后,画出了用户重置密码用例的活动图后(尝试用ArgoUML0.18.1建模,模型地址:http://learndiary.tigris.org/source/browse/*checkout*/learndiary/old/documentation/login/design/resetPsd1.zargo,活动图地址(gif格式):http://learndiary.tigris.org/source/browse/learndiary/old/documentation/login/design/resetPsd1ActivityDiagram.gif?rev=1.1&view=markup),下面接着对其中涉及的对象实体作一检查:

  1、用户:重置密码的用户;

  2、邮件:用户重置密码的链接(包括:用户ID和取回密码的标志码)的邮件;

  3、邮件发送者:发送邮件的对象;

  4、用户重置密码的数据:保存用户ID、取回密码的标志码、发送重置密码邮件的时间的信息;

  5、用户重置密码的数据保管者:维护用户ID、取回密码的标志码、发送重置密码邮件的时间的信息的保管者;

  6、重置密码数据有效期限检查者:每隔一定时间间隔(如1小时)检查一次重置密码的数据是否有效,无效了就通知数据保管者抛弃数据;