0

我正在尝试为一个场景提出一个简单的解决方案,并希望得到一些意见。我们正在使用 Ion Auth 身份验证将 Web 应用程序移植到 Codeigniter。由于 Codeigniter 中的密码加密与我们当前的哈希方法不同,所有用户都需要新密码。我在想的是每个用户都有默认密码,例如,每个用户的密码将作为他们用来注册的电子邮件地址的加密版本存在于数据库中。一旦用户第一次登录新的 Codeigniter 应用程序,我想设置某种临时验证,提示他们在继续之前更改密码。

关于实现这一目标的最简单方法有什么建议吗?我也乐于接受更好的想法。

4

1 回答 1

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
     */
}

在我的情况下,有一个密码到期日期,但您也可以有一个自定义字段,如“password_changed”或“password_times_changed”,默认为 0。

于 2013-06-16T15:15:07.710 回答