CakePHP Auth Компонент авторизации без пользовательской модели - PullRequest
1 голос
/ 28 июня 2011

Можно ли использовать Auth Component без пользовательской модели?Я хочу, чтобы в моем приложении был только один пользователь, поэтому я не хочу создавать пользовательскую модель. Я просто хочу войти с одним логином / паролем, который будет храниться в php-файле.

Ответы [ 2 ]

6 голосов
/ 28 июня 2011

Простой ответ: Нет .

Более длинный ответ заключается в том, что вы хотите использовать модель для хранения этой информации.На мой взгляд, хранить пароли пользователей в PHP-файле - очень плохая идея.Вы бы настроили свою систему так, чтобы она была абсолютно негибкой.Что происходит, когда вы получаете еще 5 пользователей?

Было бы намного лучше иметь users таблицу базы данных с 1 записью, чем users PHP-файл.И в долгосрочной перспективе будет намного меньше работы, так как Cake AuthComponent настроен на работу с таблицей базы данных.

Также, читайте этот пост в Переполнении стека о хранении паролей ,Это даст некоторое представление о том, почему Cake AuthComponent работает так, как работает.

0 голосов
/ 23 октября 2014

Хотя вы можете создать собственный класс аутентификации, я понятия не имею, использовать ли его, кроме изучения поведения внутреннего.

// Controller/Component/Auth/CustomBasicAuthenticate.php
class CustomBasicAuthenticate {

    public function authenticate(CakeRequest $request, CakeResponse $response) {
        return true;
    }

    public function getUser($request) {
        if (env('PHP_AUTH_USER') === 'foo' && env('PHP_AUTH_PW') === 'bar') {
            return array(
                'User' => array(
                    'id' => '1', 'username' => 'foo', 'password' => 'bar'
                )
            );
        } else {
            return false;
        }
    }

    public function unauthenticated(CakeRequest $request, CakeResponse $response) {
        $response->statusCode('401');
        $response->header('WWW-Authenticate: Basic realm="My Realm"');
        $response->body('fail');
        $response->send();
    }
}

// Controller/HelloController.php
class HelloController extends AppController {

    public $autoRender = false;
    public $uses = array('User');

    public $components = array(
        'Auth' => array(
            'loginAction' => array(
            'controller' => 'hello',
            'action' => 'index',
        ),
            'authenticate' => array(
                'CustomBasic' => array('userModel' => 'User')
            )
        )
    );

    public function index() {
        echo 'ok';
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...