kali ini kita akan melanjutkan pembahasan dari Part 1 untuk konfigurasi awal membuat layanan Web Services dengan Framework Codeigniter, dan sebelum masuk pada pembahasan ini di harapkan teman-teman sudah faham cara membuat atau konfigurasi terhadap project resfull
Dan perlu di ketahui oleh teman-teman bahwa layanan berbasis web service ini tidak memiliki sekuritas namun teman-teman bisa melakukan implementasi dengan melakukan batasan-batasan akses terhadap user, misalkan dengan menmapilkan data yang khusus di lihat atau di akses oleh user, atau teman-teman bisa menambahkan session token sehingga token dapat melakukan validasi terhadap user yang melakukan akses ke layanan web services yang teman-teman buat.
Membuat Database dan Table User sebagai autentikasi keamanan layanan webservice
CREATE DATABASE perpustakaan;
USE perpustakaan;
CREATE TABLE sys_user(
username varchar(20) PRIMARY KEY,
password varchar(60),
fullname varchar(30),
app_token varchar(60)
);
Buatkan sebuah controller dalam folder API di controller dengan nama file Auth.php
Buatlah kode seperti berikut ini :
<?php
/**
*
*/
require APPPATH . 'libraries/REST_Controller.php';
class Auth extends REST_Controller
{
function __construct()
{
parent::__construct();
$this->load->model('validation/model','mod');
}
function log_get(){
$username = $this->get('u');
$password = $this->get('key');
$login=$this->mod->get_login_status($username, $password);
if($login==true){
$this->response(array('status'=>true,'error'=>'','response'=>$this->mod->get_who($username)), REST_Controller::HTTP_OK);
}else{
$this->response(array('status'=>false,'error'=>'Access Rescticted','response'=>"Gagal"), REST_Controller::HTTP_OK);
}
}
function registrasi_post(){
$username=$this->post('u');
$password=$this->post('p');
$fullname=$this->post('f');
$cek_data=$this->mod->cek_sudahada($username);
if($cek_data==true){
$this->response(array('status'=>true,'error'=>'Data '. $username .' Sudah Ada'),REST_Controller::HTTP_OK);
}else{
$arrayName = array('username' => $username,
'password' => sha1($password),
'fullname' => $fullname,
'app_token'=>sha1($password . $fullname),
);
$this->db->insert('sys_user',$arrayName);
$this->response(array('status'=>true,'error'=>'Berhasil Menyimpan data '. $username),
REST_Controller::HTTP_OK);
}
}
}
Buatkan sebuah folder validation pada models dan buat sebuah file dengan nama Model.php
lalu ketikkan kode berikut pada Model.php
<?php
/**
*
*/
class Model extends CI_Model
{
function __construct()
{
parent ::__construct();
}
function get_login_status($username, $password){
$arrayName = array('username' => $username,'password'=>sha1($password));
$this->db->where($arrayName);
$this->db->limit(1);
$query=$this->db->get('sys_user');
return($query->num_rows() >0 ) ? $query->row() : FALSE;
}
function cek_sudahada($id){
$this->db->where('username',$id);
$query=$this->db->get('sys_user');
return($query->num_rows() >0 ) ? $query->row() : FALSE;
}
function get_who($id){
$this->db->select('username,fullname,app_token');
$this->db->where('username',$id);
$query=$this->db->get('sys_user');
if($query->num_rows() >0 ){
return $query->result_array();
}
}
function cek_token($token){
$arrayName = array('app_token' => $token);
$this->db->where($arrayName);
$this->db->limit(1);
$query=$this->db->get('sys_user');
return($query->num_rows() >0 ) ? $query->row() : FALSE;
}
}
kita akan coba menjalankan fungsi registrasi dengan metode post dengan Postman maka hasilnya pada database akan seperti :dan Untuk melakukan pengujian login melalui layanan web Service bisa dilakukan dengan mengirimkan beberapa parameter seperti pada gambar berikut
Sampai disini kita telah berhasil membuat authentikasi, selanjutnya setiap request harus menggunakan app_token untuk parameter request layanan webservicenya,,
sampai jumpa di tutorial berikutnya,,



0 komentar:
Posting Komentar
Terima Kasih atas kunjungan serta komentar saudara,
dalam waktu 1 x 24 jam kami akan merespon komentar saudara,