我正在尝试为一个场景提出一个简单的解决方案,并希望得到一些意见。我们正在使用Ion Auth身份验证将Web应用程序移植到Codeigniter。由于Codeigniter中的密码加密与我们当前的散列方法不同,因此所有用户都需要新的密码。我在想的是为每个用户提供默认密码,例如,每个用户的密码都将作为他们用于注册的电子邮件地址的加密版本存在于数据库中。一旦用户第一次登录到新的Codeigniter应用程序,我想设置某种临时验证,提示他们在继续之前更改密码。
有关最简单方法的任何建议吗?我也愿意接受更好的想法。
答案 0 :(得分:0)
我不确定是否理解了这个问题而且我不知道Ion Auth,但这就是我做类似事情的方式。
我的所有控制器都在扩展一个“父控制器”,它在构造函数中验证用户密码的状态。 (用户模型是自动加载的。)
class MY_Controller extends CI_Controller
{
public function __construct()
{
$userId = $this->session->userdata('user_id');
$user = $this->user_model->find($userId);
if ($user->password_expired_date <= date('Y-m-d')) {
redirect('profile/change_password');
}
}
}
class AnyController extends MY_Controller
{
/*
stuff
*/
}
在我的情况下,有密码到期日期,但您也可以使用默认为0的“password_changed”或“password_times_changed”等自定义字段。