我想用 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();
}
}