Sistem Authentifikasi? Apa itu?

29 Jul 2019 14:35 2052 Hits 0 Comments Approved by Plimbi
Pengenalan sistem Authentifikasi yang merupakan salah satu bagian vital dalam sebuah aplikasi.

Sistem authentifikasi atau sistem login merupakan salah satu bagian dari aplikasi yang sering kita kerjakan, sistem ini juga menjadi bagian yang vital pada aplikasi. Bagian ini lah yang menjamin keamanan data dari aplikasi yag sedang di kerjakan.


Pada kasus ini library yang paling penting untuk kita ketahui adalah library session. Perlu diingat juga bahwa library session codeigniter juga dapat  di simpan di sebuah cookie.Cookie tersebut dapat kita enskripsi.Selain itu, kita juga dapat menyimpan session tersebut di dalam database. Yang artinya user cookie harus cocok dengan cookie yang ada di database.

Secara default  hanya  cookie yang di gunakan dan walaupun anda tidak menggunakan enskripsi cookie anda harus tetap menkofigurasi enkripsion key. 
Untuk menggunakan library session sama seperti kita menggunakan library lain seperti biasanya. Kita bisa mengkonfigurasi file di autoload.php atau memanggil secara manual. Seperti berikut:

$this->load->library('session');

Ketika library sudah di load, maka kelas session akan mengecek apakah data session yang diinginkan berada di cookie. Jika data tidak ada di cookie maka akan di buatkan sebuah session baru dan akan di simpan di dalam cookie. Jika data cookie ditemukan maka data tersebut akan di update terutama untuk last_activity dan session_id.


Untuk penggunaan library session sendiri sangat mudah. Untuk mengambil data session dapat di lakukan dengan:


$this->session->userdata('item');
Sedangkan untuk menyimpan data session dapat di lakukan dengan cara: 
$newdata = array(
'usernama' => 'rafi',
'email' => 'rafijohari1812@gmail.com',
'logged_in'=> TRUE
);
$this->session->set_userdata($newdata); 


Untuk membuat sebuah sistem authentifikasi maka hal-hal yang perlu di lakukan adalah:

 

  • Membuat Desain Aplikasi 

Desain aplikasi sangat berpengaruh pada kode yang akan kita buat. Karena sistem authentifikasi ini adalah salah satu bagian yang kritikal maka saya akan mencoba untuk membuat nya aman bukan hanya dari segi kode,tetapi juga dari segi design. Perhatikan struktur website di bawah ini :
 
Pada gambar di atas ada 2  tipe  page yaitu page yang bisa di akses oleh semua orang dan page yang hanya boleh di akses oleh member. Hal tersebut  sangat sederhana jika kita hanya menghandle dua page. Tetapi, jika pagenya ada banyak maka kita akan mengecek satu per satu informasi user.Hal tersebut kurang aman karena kode kita  terduplikasi ke seluruh aplikasi. Nah sekarang kita akan coba untuk meng-extend controller membuat kasus ini agar menjadi lebih ringkas. Untuk controller maupun user yang login harus menggunakan member_controller 

                                                           
                                                                                      
Jika kita perhatikan class diagram di atas maka semua member_controller sudah memiliki fungsi untuk pengecekan login secara otomatis.

 

  • Membuat Tabel User 

Untuk membuat  authentifikasi kita akan membuat tiga tabel. Tabel Pertama yaitu tabel user yang berisi data informasi login user, tabel user_group berisi data pengelompokkan user menjadi group dan tabel tracker berfungsi untuk menyimpan data informasi darimana user tersebut menggunakan sistem login dan telah berapa kali gagal menggunakannya. Sebelum membuat tabel user kita akan membuat database baru dengan nama belajarCi seperti di bawah ini :


 

Klik tombol create agar database BelajarCi ada di sidebar menu atau di samping kiri menu yang artinya kira telah berhasil membuatnya.Setelah kita berhasil membuat database baru  langsung saja kita membuat tabel users seperti di bawah ini :


 

Setelah menu tersebut langsung saja kita klik go agar masuk ke menu selanjutnya:

Nah coba kalian membuat database nya seperti itu saja jika sudah seperti itu lalu klik save maka tabel users akan ada di dalam database belajarci.

 

  •  Membuat Library Access 

Setelah tabel terbentuk barulah kita membuat library untuk mengakses dan mengverifikasi data user. Library tersebut akan  kita sebut Access. Adapun kode programnya adalah sebagai berikut 
application/libraries/access.php 


Library access di atas membutuhkan library session dan database, jadi sebelum menggunakan library tesebut pastikan Anda telah menyeting konfigurasi CodeIgniter dengan benar. Jika anda belum tau cara setting konfigurasi di codeigniter silahkan baca artikel saya sebelumnya tentang cara konfigurasi codeigniter. 


Perhatikan fungsi login, fungsi itu bertugas untuk melakukan pengecekan terhadap data username dan password yang telah  diberikan oleh user. Fungsi login akan mengambil semua informasi tentang user berdasarkan username (baris 21). Setelah data didapatkan maka dilakukan pencocokan username dan password (baris 24). Jika passwordnya benar maka session user tersebut akan  disimpan sebagai penanda bahwa user telah login. 

 

  •  Membuat Library Access 

Untuk mendapatkan data user tersebut maka kita membutuhkan sebuah model. Model ini 
sangat sedehana hanya terdiri satu fungsi yaitu get_login_info.Fungsi tersebut akan 
mengembalikan object data user apabila username yang dimasukkan ada di database dan 
memberikan hasil FALSE jika data user tidak ditemukan 
 

application/models/users_model.php 

  •  Membuat Controller Member 

Pertama-tama kita akan membuat controller untuk login. Controller tesebut kita beri nama 
member. Controller member ini mempunyai dua fungsi utama yaitu login dan logout 
 

application/controller/member.php
<!--?phpÃà
à{à
àfunction __construct()à
à{à
àparent::__construct();à
à$this->load->library('access');à
à }à

àfunction index()à
à{à

à$this->access->logout();à
à$this->login();à
à
à}à

àfunction login()à
à{
$this->load->library('form_validation');à
$this->load->helper('form');à

à$this->form_validation->set_rules('username', 'Username',à
'trim|required|strip_tags');à
à$this->form_validation->set_rules('password', 'Password',à
'trim|required');à
à$this->form_validation->set_rules('token', 'token',à
'callback_check_login');à

à//$this->output->enable_profiler(1);à
àif ($this->form_validation->run() == FALSE)
à{à


à$this->template->display('member/login');à
à}à
àelseà
à{à
àredirect('dashboard');à
à}à
à}à

àfunction logout()à
à{à
à$this->access->logout();à
àredirect('member/login');à
à}à

àfunction check_login()à
à{à

à$username = $this->input->post('username',TRUE);à
à$password = $this->input->post('password',TRUE);à

à$login = $this->access->login($username, $password);à
àif($login)à
à{à
àreturn TRUE;à
à}à
àelseà
à{à
à$this->form_validation->set_message('check_login',à
'Username atau password anda salah.');à
àreturn FALSE;à
à}à
à}à
à

à}à
Pada controller member kita akan melakukan pengecekan terhadap inputan yang telah dià
masukkan user. Oleh karena itu kita tetap menggunakan library validation. Serta Kita akanà
menggunakan custom validation. Fungsi check_login di atas akan
menjadi custom validator pada controller ini. Pada fungsi itu juga library access dipanggil untukà
melakukan pengecekan login.à

à

  • àMembuat view controller memberà

Setelah memiliki model dan controller maka kita tinggal membuat viewà

Adapun tampilan dari view diatas adalahà


à à à à à à
Mungkin tampilan di atas sangat tidak enak untung di pandang wkwk silahkan kalian rubah variasi tampilan di atas sesuai keinginan anda saja.

  • Membuat Mengextend library Controllerà

Controller member hanya digunakan memverifikasi user yang login. Kita akan membuatà
sebuah controller yang hanya bisa diakses oleh user yang sudah login. Controller tersebutà
akan diberi nama Member_controller. Untuk membuat member controller maka kita harusà
membuat sebuah file di MY_Controller.php di folder application/coreà


Class Member_controller merupakan turunan dari kelas CI_Controller dengan penambahanà
fungsi pengecekan apakah user sudah login. Perhatikan baris ke 8, kita memanggil fungsi is_loginà
yang digunakan untuk mengecek apakah user sudah login. Apabila user belum login makaà
akan di redirect ke form login.à

Untuk meng-extend kelas bawaan Codeigniter kita harus membuat sebuah kelasà
MY_controller. Kita dapat meruba prefix MY_ menjadi yang lain dari konfigurasi codeigniter.à

-->
Tags

About The Author

Rafi johari 36
Ordinary

Rafi johari

Programmer yang baik menggunakan otaknya, tapi kerangka kerja yang baik menghemat waktu untuk berpikir
Plimbi adalah tempat menulis untuk semua orang.
Yuk kirim juga tulisanmu sekarang
Submit Artikel