Open Cart 3.0.X RestApi Login

Merhaba, bana en çok sorulan sorular arasında olan Opencart RestApi login işlemini size kısaca anlatmaya çalışacağım. Daha önceki yazılarımda Opencart 2.0.X RestApi login işleminin versiyonları için nasıl yapılacağını anlatmıştım.

Bu yazımda da opencart 3 versiyonu için bu işlemin nasıl gerçekleştirileceğini anlatmaya çalışacağım.

  1. Adım: Öncelikle admin panelimizde api kullanıcısını oluşturmamız gerkiyor.

Buraya kadar tamamsa hemen login için denememizi yapalım. Ben yazılım olarak Postman kullanıyorum. Siz benzer harhangi bir program kullanabilirsiniz.

Opencart3 RestApi

Opencart3’ün önceki sürümden tek farkı ekstra olarak username istemesi. Zaten public_html/catalog/controller/api/login.php dosyasını incelediğimizde, ne istediğini rahatlıkla görebiliriz.

<?php
class ControllerApiLogin extends Controller {
	public function index() {
		$this->load->language('api/login');

		$json = array();

		$this->load->model('account/api');

		// Login with API Key
		if(isset($this->request->post['username'])) {
			$api_info = $this->model_account_api->login($this->request->post['username'], $this->request->post['key']);
		} else {
			$api_info = $this->model_account_api->login('Default', $this->request->post['key']);
		}

		if ($api_info) {
			// Check if IP is allowed
			$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']);
			}				
				
			if (!$json) {
				$json['success'] = $this->language->get('text_success');
				
				$session = new Session($this->config->get('session_engine'), $this->registry);
				
				$session->start();
				
				$this->model_account_api->addApiSession($api_info['api_id'], $session->getId(), $this->request->server['REMOTE_ADDR']);
				
				$session->data['api_id'] = $api_info['api_id'];
				
				// Create Token
				$json['api_token'] = $session->getId();
			} else {
				$json['error']['key'] = $this->language->get('error_key');
			}
		}
		
		$this->response->addHeader('Content-Type: application/json');
		$this->response->setOutput(json_encode($json));
	}
}

Bir cevap yazın

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.