0Pricing
PHP Academy · Pelajaran

Gate: Pemeriksaan Otorisasi Sederhana

Definisikan dan evaluasi gate untuk logika izin tindakan pengguna.

Gate: Pemeriksaan Otorisasi Sederhana adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar PHP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus PHP Academy mencakup 4 pelajaran total.

Apa Itu Gerbang

Gerbang Laravel adalah fungsi anonim yang menentukan apakah pengguna berwenang melakukan tindakan tertentu. Gerbang merupakan pemeriksaan otorisasi global sederhana yang tidak terikat pada model tertentu.

Mendefinisikan Gerbang

Definisikan gerbang di App\Providers\AppServiceProvider atau AuthServiceProvider khusus menggunakan fasad Gate.

<?php
use Illuminate\Support\Facades\Gate;

// In a service provider's boot() method:
Gate::define("delete-post", function (User $user, Post $post) {
    return $user->id === $post->user_id;
});

Memeriksa Gerbang (mengizinkan/menolak)

Periksa hasil gerbang dengan Gate::allows() atau Gate::denies().

<?php
if (Gate::allows("delete-post", $post)) {
    $post->delete();
}

if (Gate::denies("delete-post", $post)) {
    abort(403);
}

authorize() pada Pengontrol

Panggil $this->authorize() di dalam pengontrol — fungsi ini secara otomatis melempar AuthorizationException (403) saat gagal.

<?php
public function destroy(Post $post): RedirectResponse
{
    $this->authorize("delete-post", $post);
    $post->delete();
    return redirect()->route("posts.index");
}

@can pada Blade

Gunakan direktif @can untuk menampilkan antarmuka secara kondisional berdasarkan pemeriksaan gerbang.

@can('delete-post', $post)
    <form method="POST" action="/posts/{{ $post->id }}">
        @csrf @method('DELETE')
        <button>Delete</button>
    </form>
@endcan

Gate::before

Panggilan balik before berjalan sebelum semua pemeriksaan gerbang lainnya — berguna untuk memberikan akses menyeluruh kepada administrator.

<?php
Gate::before(function (User $user, string $ability) {
    if ($user->isAdmin()) return true; // skip further checks
});

Gate::after

after berjalan setelah semua pemeriksaan gerbang. Nilai yang dikembalikan dan bukan null akan menggantikan hasil gerbang.

Mengembalikan Respons

Gerbang dapat mengembalikan objek Response untuk pesan kesalahan khusus.

<?php
Gate::define("publish-post", function (User $user, Post $post) {
    return $user->isEditor()
        ? Response::allow()
        : Response::deny("You must be an editor to publish.");
});

forUser()

Periksa gerbang untuk pengguna lain, bukan pengguna yang telah diautentikasi.

<?php
if (Gate::forUser($otherUser)->allows("delete-post", $post)) {
    // ...
}

Pengguna Tamu

Secara bawaan, gerbang otomatis mengembalikan false untuk pengguna yang belum diautentikasi. Beri petunjuk tipe nullable pada pengguna agar pemeriksaan tamu dapat dilakukan.

<?php
Gate::define("view-post", function (?User $user, Post $post) {
    return $post->is_published || $user?->id === $post->user_id;
});

Gerbang vs Kebijakan

Gerbang adalah fungsi anonim sederhana untuk pemeriksaan ad hoc. Kebijakan adalah kelas untuk otorisasi berbasis model — gunakan kebijakan saat Anda memiliki beberapa tindakan pada model yang sama.

Ringkasan

Gerbang adalah fungsi anonim otorisasi global. Definisikan gerbang di penyedia layanan. Lakukan pemeriksaan dengan Gate::allows(), $this->authorize(), atau @can di Blade.

Pemeriksaan Singkat

Metode pengontrol mana yang secara otomatis melempar 403 saat gerbang gagal?

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Gate: Pemeriksaan Otorisasi Sederhana” gratis?

Ya — teks lengkap “Gate: Pemeriksaan Otorisasi Sederhana” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus PHP Academy, upgrade ke CoddyKit PRO. Kursus PHP Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Gate: Pemeriksaan Otorisasi Sederhana”?

Definisikan dan evaluasi gate untuk logika izin tindakan pengguna. Kamu berlatih PHP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai PHP Academy?

Tidak diperlukan pengalaman sebelumnya. PHP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Gate: Pemeriksaan Otorisasi Sederhana” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran PHP Academy ini?

Ya. Setiap pelajaran PHP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Autentikasi dengan Laravel Breeze
  2. Melindungi Rute dengan Middleware
  3. Gate: Pemeriksaan Otorisasi Sederhana
  4. Policy: Otorisasi Berbasis Model
← Kembali ke PHP Academy