Codeigniter - 用于重置密码的表单

时间:2017-03-15 16:01:23

标签: php rest codeigniter

我有一个由带有Codeigniter和REST_Controller的PHP API组成的系统。

当用户要求重置密码时,系统会生成一个随机数,并将其嵌入通过邮件发送给用户的URI中。

当用户单击它时,它会调用REST_Controller / Codeigniter中的一个函数,该函数读取嵌入的数字并确定它是否有效。如果是,则向用户呈现具有用于更改密码的表单的网站。

现在,主要问题。当用户单击“提交”按钮发送新密码时,客户端是否必须在REST_Controller / Codeigniter中调用另一个函数?如果是这样,我如何验证带有数据的提交请求来自用户,而不是来自互联网的随机请求?

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

我刚使用了以下方法:

  1. 用户单击带有嵌入在URI中的令牌的链接,该链接向服务器上运行的函数PasswordRecovery1发出GET请求,该函数验证令牌。

  2. 如果令牌有效,则在客户的计算机上设置一个cookie,其中包含用户' ID和发送回客户端计算机的相同令牌。

  3. 然后向用户显示由密码输入字段和提交按钮组成的网页。

  4. 在提供新密码后,用户单击“提交”,这将发出POST请求以启动获取新密码的PasswordRecovery2,然后从客户端的计算机读取cookie。

  5. PasswordRecovery2函数检查从cookie读取的令牌是否有效,如果是,则更改密码。

  6. 我希望这是一种正确的方法。