Kohana Auth满足每一个要求

时间:2013-07-09 08:45:43

标签: php kohana kohana-3

我想用Kohana构建一个无状态系统,所以我不想使用会话。我想为每个请求发送一个用户名和密码(此时如何转移这些凭据是无关紧要的),检查凭证是否与Kohana一致,并使用相关数据或401进行回复。

我知道我可能需要扩展Auth模块,但由于某种原因,我不断获得500。这是我正在尝试的:

类/ Auth.php

<?php defined('SYSPATH') OR die('No direct access allowed');

class Auth extends Kohana_Auth {

    public static function checkCredentials($username, $password) {
        return TRUE;
    }

    public function password($username) {
        parent::password($username);
    }

    public function check_password($password) {
        parent::check_password($password);
    }

    protected function _login($username, $password) {
        parent::_login($username, $password);
    }

}

类/控制器/ Frontdesk.php

<?php defined('SYSPATH') or die('No direct script access.');

abstract class Controller_Frontdesk extends Kohana_Controller {

    public function before() {
        parent::before();

        // If not logged in, throw exception
        if (!Auth::checkCredentials('john@acme.com','fido')) throw new HTTP_Exception_401();

    }

}

1 个答案:

答案 0 :(得分:0)

事实证明,我错误地声明了我正在扩展的类的方法。

Kohana中的Auth类定义了这种方法:

abstract protected functin _login($username, $password, $remember);

由于我不需要记住密码,我认为将方法声明为:

protected function _login($username, $password) {};

我错了。