我正在使用 Codeigniter 进行开发,并使用与 Amazon 类似的模型进行密码重置:用户单击我通过电子邮件发送的链接,这将进入启动适当视图的控制器。但是,出于安全原因,我需要将一些令牌附加到 uri 的末尾。我在哪里拦截 Codeigniter 中的 uri 以删除令牌?我将不胜感激演示这一点的代码片段。提前谢谢了。
问问题
1414 次
1 回答
1
您可以发送一个网址,例如 www.yousite.com/index.php/password/reset/116wef4wef4325w6e4
在您的控制器 password.php 中,您有:
class Password extends CI_Controller {
function reset($token)
{
if(isset($token) AND $token != '')
{
$retrived_token = $token; //it's automatically passed by CI to this method.
//It would output 116wef4wef4325w6e4
//you may do some validation of it through a model here.
//ex. if($this->mymodel->validate_token($retrieved_token)
//{ do something } else { }
}
}
}
您没有提供有关您的应用程序结构的任何信息,所以我只是猜测您可能有一个仅用于处理密码的控制器。如果不是这种情况,您可以在父控制器中使用“密码”方法,该方法又接受 2 个参数,在本例中为“重置”和“令牌”。或者您可以使用自定义路线。如果您提供此信息,我可能会帮助更新我的代码建议。
于 2011-07-08T08:28:16.790 回答