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

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

  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小时)检查一次重置密码的数据是否有效,无效了就通知数据保管者抛弃数据;

  

4 thoughts on “学习日记用户取回密码(重置密码)分析设计”

  1. 在上面建模的基础上,我继续对UML建模进行细化,并且添加了:类图。我将进行完善这个模型的设计。

    模型的下载地址是:

    The main diagrams are:

    http://www.learndiary.com/pictures/loginDesign/resetPsdUseCaseDiagram2.gif ,

    http://www.learndiary.com/pictures/loginDesign/resetPsdClassDiagram2.gif ,

    http://www.learndiary.com/pictures/loginDesign/resetPsdActivityDiagram2.gif ,

    and,the entire ArgoUML0.18.1 model is:

    http://www.learndiary.com/pictures/loginDesign/resetPsd2.zargo .

    The description is at:

    http://www.learndiary.com/disDiaryContentAction.do?goalID=1300

    希望大家给出您的宝贵意见和建议。谢谢。

  2.   第三次提交了argouml建模,把模型交给ppig,征询了一下意见,基本上就按原来的思路了。我想下一步可以把argouml生成的代码框架(加了一些必要的伪代码)提交到cvs库中了。

      但是,我发现使用argouml的反向工程有问题,反向生成的类图产生的代码的import语句出错(已报告),而且,如果,反复反向和正向代码生成,里面的javadoc的行距会越变越大,如果继续这样,要考虑向argouml说一下。

      虽然如此,我觉得使用argouml基本上能够完成现有的建模任务。但是,也看到了开源建模工具和商业工具的差距还是不小。尤其是易用性方面。我可以把上面的过程在其它商业软件中试一下,对比看情况如何。

      也许,是因为我刚开始用它,不熟悉的缘故吧?

  3.   作为一个"argouml+eclipse+struts+testing based"的试点小程序,我把这个模块提交到了模块learndiary/find_a_way/login中。

      现在,进入正式的编码阶段,ppig主要做测试代码框架的编写。我主要写功能代码。整个程序的目录结构如下:

    Directory Structure:

    root

      |_build.xml(ant build script)

      |_learndiary.LICENSE.txt(license file)

      |_README.txt(this file)

      |_build(temp folder for ant building)

      |_database(database creating files)

      |_design(ArgoUML model)

      |_dist(distribution files)

      |_docs(javadoc files)

      |_lib(jar files are needed by ant building)

      |_src(java source files)

      |_tests(junit,strutstest testing class source files)

      |_pages_demo_of_login_part(pages demo of login interface,the design has been changed in fact)

      |_web(web application files)

    见:http://learndiary.tigris.org/source/browse/learndiary/find_a_way/login/

Comments are closed.