Tutorial Laravel : Part 6, Mengelola Akses Pengguna

 Langkah 17: Mengelola Akses Pengguna

Dalam aplikasi web, terkadang Anda perlu mengatur akses pengguna berdasarkan peran atau level tertentu. Laravel menyediakan fasilitas untuk mengelola akses pengguna dengan menggunakan middleware 'can'.


Langkah 17.1: Membuat Middleware

Buatlah middleware baru untuk mengelola akses pengguna berdasarkan peran atau level. Misalnya, kita akan membuat middleware 'isAdmin' untuk membatasi akses hanya untuk pengguna dengan peran admin.

php artisan make:middleware isAdmin


Setelah itu, buka file isAdmin.php yang ada di direktori app/Http/Middleware dan atur kode middleware sebagai berikut:

// app/Http/Middleware/isAdmin.php


use Closure;

use Illuminate\Support\Facades\Auth;


class isAdmin

{

    public function handle($request, Closure $next)

    {

        if (Auth::check() && Auth::user()->role === 'admin') {

            return $next($request);

        }


        return redirect('/home')->with('error', 'Unauthorized access');

    }

}


Langkah 17.2: Menambahkan Middleware pada Routing

Tambahkan middleware 'isAdmin' pada routing yang ingin dibatasi aksesnya hanya untuk pengguna dengan peran admin.

// routes/web.php


Route::get('/admin/dashboard', 'AdminController@dashboard')->middleware('isAdmin');


Langkah 18: Menambahkan Form Validasi di Frontend

Selain validasi di sisi server, Anda juga dapat menambahkan validasi di sisi frontend menggunakan JavaScript. Laravel menyediakan integrasi dengan library JavaScript seperti Vue.js dan Axios untuk melakukan validasi form di sisi frontend.


Pertama, pastikan Anda telah menginstal Vue.js dan Axios dengan menggunakan npm.

npm install vue axios


Buat file Vue component untuk validasi form.

<!-- resources/views/validasi-form.vue -->


<template>

  <div>

    <form @submit.prevent="submitForm">

      <label for="name">Name:</label>

      <input type="text" id="name" v-model="name" required>

      <span v-if="errors.name" class="error">{{ errors.name[0] }}</span>


      <label for="email">Email:</label>

      <input type="email" id="email" v-model="email" required>

      <span v-if="errors.email" class="error">{{ errors.email[0] }}</span>


      <button type="submit">Submit</button>

    </form>

  </div>

</template>


<script>

export default {

  data() {

    return {

      name: '',

      email: '',

      errors: {},

    };

  },

  methods: {

    submitForm() {

      const formData = {

        name: this.name,

        email: this.email,

      };


      axios

        .post('/submit-form', formData)

        .then((response) => {

          // Handle success response

        })

        .catch((error) => {

          this.errors = error.response.data.errors;

        });

    },

  },

};

</script>


Langkah 19: Melakukan AJAX Request dengan Axios

Pada Vue component di langkah sebelumnya, kita menggunakan Axios untuk melakukan AJAX request ke server untuk validasi form. Pastikan Anda telah mengimpor dan menggunakan Axios dengan benar.


Tambahkan routing untuk menangani AJAX request dari form validasi.

// routes/web.php


Route::post('/submit-form', 'FormController@submitForm');


Buatlah controller untuk menangani request dari form validasi.

// app/Http/Controllers/FormController.php


use Illuminate\Http\Request;


class FormController extends Controller

{

    public function submitForm(Request $request)

    {

        $request->validate([

            'name' => 'required|string|max:255',

            'email' => 'required|email|unique:users,email|max:255',

        ]);


        // Proses data form

        // ...


        return response()->json(['message' => 'Form submitted successfully']);

    }

}


Kesimpulan:

Dalam tutorial ini, Anda telah mempelajari cara mengelola akses pengguna dengan menggunakan middleware dan mengimplementasikan validasi form di sisi frontend dengan menggunakan Vue.js dan Axios. Pengelolaan akses pengguna berdasarkan peran atau level memberikan kontrol lebih dalam mengatur izin pengguna dalam aplikasi web. Validasi form di sisi frontend dengan Vue.js dan Axios membantu memberikan umpan balik yang lebih cepat kepada pengguna sebelum data dikirimkan ke server. Laravel menyediakan berbagai fitur yang bermanfaat untuk pengembangan aplikasi web yang efisien dan canggih. Teruslah eksplorasi dan tingkatkan pengetahuan Anda dalam menggunakan Laravel untuk mengembangkan aplikasi web yang lebih kompleks dan berkualitas tinggi. Selamat mencoba dan semoga tutorial ini membantu Anda dalam perjalanan pengembangan

Lebih baru Lebih lama