首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC -流程流程

MVC -流程流程
EN

Stack Overflow用户
提问于 2014-02-04 07:08:07
回答 1查看 175关注 0票数 0

我的PHP应用程序中有一个要求-允许用户重置他们的密码。这一过程如下:

  1. 用户请求密码重置;
  2. 用户输入电子邮件地址;
  3. 系统验证电子邮件地址-如果无效通知用户和进程结束,否则电子邮件被发送到输入的电子邮件地址,其中包含一个散列令牌在一个链接;
  4. 用户点击电子邮件中的链接;
  5. 系统接收嵌入令牌的重置请求-验证令牌和时间限制(60分钟);
  6. 如果重置请求有效,则显示带有两个密码字段的重置密码视图,否则用户告诉请求无效,进程退出;
  7. 假设有效请求,用户输入他们的密码两次,然后通过比较验证。

这似乎是目前的最佳做法。

我的问题是如何使用MVC实现这一点。我有一个前端控制器,它吸收来自GETPOST请求的数据,并通过路由器类将数据传递到相关的视图模型和视图。

使用这个模型,我有一个重置-密码视图-模型和视图,照顾用户的电子邮件输入和电子邮件到地址的链接令牌-所有这里都很好。

我也有一个视图模型和视图供用户输入他们的新密码。就在这里我有麻烦了。这将验证传入令牌和时间限制--这是有效的。然后,如果令牌和时间限制是有效的,它将向用户提供设置密码视图,需要对其进行验证。我还没有想出一个使用设置密码视图模型和视图的解决方案,它允许我显示set密码视图和验证,向用户说明密码无效的原因(密码字段中的任何一个是空的,或者密码不匹配)。

我希望我对我的问题已经很清楚了。有人能为我的问题提出一个解决这个过程的最佳实践方案吗?我认为我在过程的第二部分做的太多了--分解工作,引入一个新的视图模型(用户看不到),在传递到设置密码部分之前负责令牌和时间验证,这是我正在考虑的解决方案之一,但它感觉是错误的。它没有我不正确的解决办法(少是好)的无道德吸引力。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-05 07:24:22

@_teresko -谢谢。我的问题在于我对MVC的错误理解和实现。我已经阅读了更多,特别是here。你的评论迫使我重新审视我的申请过程,我发现了这个问题。一个薄控制器有时不是最好的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21546075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档