我正在使用Codeigniter进行开发并使用与Amazon类似的模型进行密码重置:用户点击我发送电子邮件的链接,这会导致启动相应视图的控制器。但是出于安全原因,我需要将一些令牌附加到uri的末尾。我在哪里拦截Codeigniter中的uri以删除令牌?我很感激一个演示这个的代码片段。 非常感谢提前。
答案 0 :(得分:1)
您可以发送www.yousite.com/index.php/password/reset/116wef4wef4325w6e4
在你的控制器密码.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个参数,在本例中为“重置”和“令牌”。或者您可以使用自定义路线。如果您提供此信息,我可能会帮助更新我的代码建议。