Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Как убрать защиту "У вас нет разрешения на доступ к API" OcStore 2.3


 Поделиться

Рекомендованные сообщения

Доброго времени суток!

Пересмотрела кучу тем не нашла рабочего решения для ocstore 2.3. А IP адрес динамический все время меняется, постоянно добавлять его в базу уже устал.

 

Было сделано:


в файле \catalog\controller\api\login.php

перед

if (!$json) {    

перед ним ставим

$json false;


далее в файле \catalog\controller\api\order.php в функции public function history() {

перед

if (!isset($this->session->data['api_id'])) {

ставим

$this->session->data['api_id'] = 1;
В других темах не находила указанных строчек(
Как убрать эту защиту для ocstore 2.3?
Ссылка на комментарий
Поделиться на других сайтах


  • 1 год спустя...

Если задача стояла разрешить доступ к API с любого ip-адреса, нужно было в контроллере \catalog\controller\api\login.php просто закомментировать следующий код:

/*
$ip_data = array();
		
$results = $this->model_account_api->getApiIps($api_info['api_id']);

foreach ($results as $result) {
  $ip_data[] = trim($result['ip']);
}

if (!in_array($this->request->server['REMOTE_ADDR'], $ip_data)) {
  $json['error']['ip'] = sprintf($this->language->get('error_ip'), $this->request->server['REMOTE_ADDR']);
}
*/
Ссылка на комментарий
Поделиться на других сайтах


Эмм... подзабыл. Ещё нужно в файле catalog\controller\startup\session.php код

$query = $this->db->query("SELECT DISTINCT * FROM `" . DB_PREFIX . "api` `a` LEFT JOIN `" . DB_PREFIX . "api_session` `as` ON (a.api_id = as.api_id) LEFT JOIN " . DB_PREFIX . "api_ip `ai` ON (as.api_id = ai.api_id) WHERE a.status = '1' AND as.token = '" . $this->db->escape($this->request->get['token']) . "' AND ai.ip = '" . $this->db->escape($this->request->server['REMOTE_ADDR']) . "'");

поменять на

$query = $this->db->query("SELECT DISTINCT * FROM `" . DB_PREFIX . "api` `a` LEFT JOIN `" . DB_PREFIX . "api_session` `as` ON (a.api_id = as.api_id) LEFT JOIN " . DB_PREFIX . "api_ip `ai` ON (as.api_id = ai.api_id) WHERE a.status = '1' AND as.token = '" . $this->db->escape($this->request->get['token']) . "'");

 

Ссылка на комментарий
Поделиться на других сайтах


  • 2 месяца спустя...
В 14.02.2019 в 18:18, SZQ сказал:

Если задача стояла разрешить доступ к API с любого ip-адреса, нужно было в контроллере \catalog\controller\api\login.php просто закомментировать следующий код:


/*
$ip_data = array();
		
$results = $this->model_account_api->getApiIps($api_info['api_id']);

foreach ($results as $result) {
  $ip_data[] = trim($result['ip']);
}

if (!in_array($this->request->server['REMOTE_ADDR'], $ip_data)) {
  $json['error']['ip'] = sprintf($this->language->get('error_ip'), $this->request->server['REMOTE_ADDR']);
}
*/

 

В 15.02.2019 в 09:47, SZQ сказал:

Эмм... подзабыл. Ещё нужно в файле catalog\controller\startup\session.php код


$query = $this->db->query("SELECT DISTINCT * FROM `" . DB_PREFIX . "api` `a` LEFT JOIN `" . DB_PREFIX . "api_session` `as` ON (a.api_id = as.api_id) LEFT JOIN " . DB_PREFIX . "api_ip `ai` ON (as.api_id = ai.api_id) WHERE a.status = '1' AND as.token = '" . $this->db->escape($this->request->get['token']) . "' AND ai.ip = '" . $this->db->escape($this->request->server['REMOTE_ADDR']) . "'");

поменять на


$query = $this->db->query("SELECT DISTINCT * FROM `" . DB_PREFIX . "api` `a` LEFT JOIN `" . DB_PREFIX . "api_session` `as` ON (a.api_id = as.api_id) LEFT JOIN " . DB_PREFIX . "api_ip `ai` ON (as.api_id = ai.api_id) WHERE a.status = '1' AND as.token = '" . $this->db->escape($this->request->get['token']) . "'");

 

Спасибо! Все получилось...

Изменено пользователем Vladimir019
Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.