2013-07-09 4 views
0

Я хотел бы построить систему без гражданства с Kohana, поэтому я не хочу использовать сеансы. Я бы хотел отправить имя пользователя и пароль с каждым запросом (как передаются эти учетные данные на данный момент не имеет значения), проверьте правильность учетных данных с Kohana и ответьте соответствующими данными или 401.Kohana Auth по каждому запросу

I понимаю, что мне, вероятно, понадобится расширить модуль 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); 
    } 

} 

классы/Controller/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('[email protected]','fido')) throw new HTTP_Exception_401(); 

    } 

} 
+1

Что говорят ваши журналы ошибок PHP (или Apache)? Часто вы найдете более подробную информацию о том, почему у вас есть ошибка внутреннего внутреннего сервера в файлах журналов для вашего приложения. – Jon

+0

А, это помогло. По некоторым причинам ошибки не регистрировались в журналах Kohana, как обычно, если бы я, например, опечатал класс. Я проверил журналы и показал, что мое объявление '_login()' должно быть совместимо с методом, который он переопределял. Мне не хватало параметра. –

+0

Рад, что помогло! Не могли бы вы ответить на свой вопрос и отметить его как принято? благодаря – Jon

ответ

0

Как оказалось, я неправильно объявлена метод класса, который я расширял.

Класс Auth в Kohana определяет этот метод:

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

Поскольку мне не нужно пароли следует помнить, я подумал, что было бы хорошо, чтобы объявить метод как:

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

Я был неправ.

Смежные вопросы