0

Kohana Auth 模块有两个问题:

  1. 可以用假密码登录
  2. 我已经从应用程序中注销,但是当单击浏览器中的后退按钮时,它会显示受保护端的内容。然后我刷新那个页面,它被重定向到登录页面——当用户点击浏览器中的后退按钮时,我需要这个重定向。

到目前为止我做了什么:

  1. 我创建了一个解决方法来手动检查密码是否相等,而不是使用内置登录方法,如果成功,请使用 Kohana Auth 预定义方法。
  2. 我已经使用 Firebug 检查了 Session 值,当我注销时它正在改变。假设如果单击后退按钮不会显示受保护的一面,因为我在页面上有一个 ACL 实现。

希望任何人都可以在这方面帮助我......真的是一个关键的要求..

我的一些参考:

  1. 无法使用 Kohana 3.3.0 ORM Auth 登录
  2. http://forum.kohanaframework.org/discussion/comment/78699#Comment_78699
  3. http://forum.kohanaframework.org/discussion/11756/kohana-auth-module-3-3/p1

问候,纳斯

4

1 回答 1

0

也许这会有所帮助:注册操作:

$extra_rules = Validation::factory($this->request->post())
                        ->rule('password', 'not_empty')
                        ->rule('password', 'min_length', array(':value', '8'))
                        ->rule('password_confirm', 'matches', array(':validation', 'password_confirm', 'password'))

                $user->create($extra_rules);
//if You want to enable login add a role, or You can put it later on account confirmation or something
                if ($user->saved()) {
                    $user->add('roles', 1);
                }

登录动作:

$logged = Auth::instance()->login($this->request->post('username'), $this->request->post('password'), $_POST['autologin'] = true);

        if ($logged == true) {
            $user = Auth::instance()->get_user();
            $userId = $user->id;

            HTTP::redirect('somewhere');
        } else {
            $validation = Validation::factory($this->request->post())
                    ->rule('username', 'not_empty')
                    ->rule('password', 'not_empty');
            if ($validation->check()) {
                $validation->error('username', 'general');
            }
于 2013-07-05T13:15:29.960 回答