Аутентификация на базе данных с Rest-сервером Фила Стерджена - PullRequest
2 голосов
/ 17 мая 2011

Я пытаюсь изменить сервер отдыха Фила Стерджена для аутентификации против ion-auth.Я изменил _check_login на:

private function _check_login($username = '', $password = NULL)
{
    if (empty($username))
    {
        return FALSE;
    }

    $this->rest->db = $this->load->database('default', TRUE);
    $sql = 'SELECT api_key FROM users WHERE email = ?';
    $query = $this->rest->db->query($sql, urldecode($username));

    if ($query->num_rows() > 0) {
        $user = $query->row_array();
    } else {
        return FALSE;
    }

    // If actually NULL (not empty string) then do not check it
    if ($password !== NULL AND $user['api_key'] != $password)
    {
        return FALSE;
    }

    //return TRUE;
    return $user['api_key'];
}

Мой первый вопрос: мне нужно сделать:

$this->rest->db = $this->load->database('default', TRUE);

Мне кажется, что $ this-> rest-> db уже должен быть доступеноднако, поскольку он установлен в конструкторе, я получаю сообщение об ошибке, в котором говорится, что я пытаюсь выполнить запрос к необъекту, если не добавляю строку load-> database () в _check_login, как описано выше.ПРИМЕЧАНИЕ. Я удалил оператор if в конструкторе, который инициализирует соединение БД только в том случае, если включены ключи или ведение журнала, поэтому это не должно вызывать проблем.

Моя вторая проблема, я думаю, является результатом вопроса 1. Во всяком случаепосле внесения изменений в REST_Controller мои модели в моих контроллерах REST больше не работают.Я получаю следующую ошибку:

Обнаружена ошибка PHP

Уровень важности: уведомление

Сообщение: неопределенное свойство: Пользователь :: $ db

Имя файла: core / Model.php

Номер строки: 50

, которая возникает, когда я выполняю вызов метода в одной из моделей.

Надеюсь, этого достаточно, чтобы помочь определить проблему.Любые идеи о том, что я могу делать не так?Спасибо!

1 Ответ

0 голосов
/ 16 марта 2013

Я считаю, что класс БД находится в $ this-> db. Вы пробовали это?

РЕДАКТИРОВАТЬ: ах, похоже, $ this-> rest-> db также псевдоним для $ this-> db.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...