ALUR KERJA PROJECT AKU


 

Assalamualaikum Wr. Wb

    Jadi sekarang saya mau mencoba presentasi tentang proposal project TEMUVIRTUAL BY AKUSARA. Tapi disini hanya proposal jadi belum semua di implementasikan ke project.

    Untuk deadline, aku ambil berarti bulan Oktober tanggal 15 - 20 an ( 2 - 3 bulan ). Lalu untuk project disini menggunakan 2 aplikasi yaitu Main Service ( Web Utama ) & Auth Service ( Service Yang Hanya Melayani Proses Authentikasi / SSO ). 

    Untuk autentikasi disini akan menggunakan SSO & Social Media ( tanpa harus verifikasi email ). Selanjutnya untuk halaman admin akan 3 yaitu User dashboard, Admin dashboard dan LOI Superadmin dashboard

    Registrasi

  • Disini User akan melakukan registrasi seperti biasa
  • Setelah lolos validasi, lalu data registrasi tadi akan diterima oleh Main Service 
  • Disini Main Service akan melakukan POST request ke API Register dari Auth Service menggunakan data tadi
  • Lalu dari Auth Service akan melakukan validasi
  • Jika berhasil validasi, selanjutnya membuat User baru di database Auth Service
  • Lalu mengembalikan response ke Main Service
  • Jika response yang diterima adalah 4xx, maka dipastikan error validasi
  • Jika response yang diterima adalah OK maka buat user baru di database Main Service menggunakan data tadi ( name, email, etc )
  • Setelah itu kembalikan pesan ke User bahwa registrasi berhasil

    Login
  • Disini User akan melakukan login seperti biasa
  • Setelah lolos validasi, lalu data login tadi akan diterima oleh Main Service    
  • Disini Main Service akan melakukan POST request ke API Login dari Auth Service menggunakan data tadi
  • Lalu dari Auth Service akan melakukan validasi
  • Jika berhasil validasi, selanjutnya Auth Service akan melakukan generate token (JWT) berdasarkan payload yang sudah ditentukan
  • Selanjutnya akan melakukan Insert ke database Auth Service yaitu data user personal auth token
  • Fungsi nya apa sih user personal auth token. Jadi ini berfungsi untuk token unique setiap kali user melakukan login. Sehingga setiap kali login, baik di device yang sama ataupun berbeda maka akan membuat api token yang berbeda beda pula
  • Setelah semua yang di Auth Service berjalan dengan sesuai. Selanjutnya Auth Service akan mengembalikan response OK dengan data api_token & expired_token
  • Setelah proses diatas berarti jika login berhasil, Main Service akan mendapatkan data berupa api_token & expired_token dari Auth Service
  • Lalu dari Main Service akan membuat COOKIE yaitu dengan nama X-AUTH_TOKEN, yang memiliki nilai yaitu api_token dan expired yaitu expired_token
  • Setelah itu akan melakukan redirect ke url yang sudah ditentukan
  
  Middleware ( Must Login )
  • Untuk melakukan validasi harus login, disini saya membuat sebuah middleware SSOAuthenticate di Main Service
  • Ketika sebuah route diberi middleware SSOAuthenticate maka akan melakukan aksi berikut
  • Disini saya akan mengambil data COOKIE yang telah kita buat tadi, pada proses login
  • Setelah itu akan melakukan GET request ke API dari Auth Service dengan sambil mengirimkan Authentication bearer_token yang berisi COOKIE kita tadi
  • Selanjutnya di Auth Service 
  • Akan melakukan validasi bearer_token apakah valid dan apakah bearer_token tersebut sudah expired. Jika valid kembalikan response true, jika gagal kembalikan response false ke Main Service
  • Data yang kita dapat tadi dari response Auth Service kita gunakan untuk melakukan pengkondisian
  • Jika true maka dipersilahkan untuk melakukan akses ke route tersebut, jika false maka kembalikan ke halaman login
    
    Middleware ( Guest / Must Not Login )
  • Yah konsepnya mirip dengan Middleware ( Must Login )    
    
    Logout
  • Disini akan melakukan Post ke Main Service ( Seperti logout Laravel pada umumnya )
  • Selanjutnya Main Service akan melakukan POST request ke API Logout dari Auth Service dengan sambil mengirimkan Authentication bearer_token yang berisi COOKIE X-AUTH_TOKEN
  • Lalu di Auth Service akan melakukan validasi, jika lolos validasi maka lakukan langkah berikut
  • Hapus data user personal auth token di Auth Service berdasarkan pengkondisian data bearer_token
  • Lalu jika berhasil kembalikan response OK ke Main Service
  • Selanjutnya jika response status yang diterima Main Service adalah OK. Lanjut redirect ke halaman login

    Untuk halaman dashboard simple nya gini ( Main Service
  • User Dashboard digunakan oleh user ( Tamu ), fungsinya digunakan oleh user untuk mengakses fitur fitur pada website tersebut
  • Admin Dashboard digunakan oleh client ( Pemilik Website ), fungsinya untuk pengelolaan data website seperti portfolio, transaksi dll
  • LOI Dashboard digunakan oleh pemilik / staff LOI, fungsinya untuk melakukan pengelolaan Aplikasi tersebut. Seperti misal aktivasi, mendisable fitur dsb

    Sekian proposal saya, Terima Kasih. Wasallamualaikum Wr. Wb

Komentar