Using Laravel Breeze for Simple and Secure API Authentication

Laravel Jan 3, 2023
Otentikasi API Laravel Breeze

Laravel Breeze adalah pengimplementasian sistem otentikasi yang sederhana dan minimal untuk aplikasi Laravel. Ini memberikan kita titik awal untuk membangun sebuah aplikasi Laravel yang memerlukan otentikasi. Didalamnya sudah termasuk routes, controllers, and views untuk form login, form pendaftaran, dan form pengaturan ulang kata sandi, serta verifikasi email dasar dan fungsionalitas email pada saat melakukan pengaturan ulang kata sandi.

Untuk menggunakan autentikasi API dengan Laravel Breeze, kamu bisa menggunakan Laravel Passport. Passport adalah server OAuth2 dan paket otentikasi API yang dibangun di atas server League OAuth2. Ini menyediakan implementasi server OAuth2 penuh, serta sistem otentikasi API sederhana.

Install Passport

Untuk menginstal Passport, Anda dapat menggunakan Composer:

composer require laravel/passport

Selanjutnya, kamu dapat menjalankan perintah passport:install , yang akan membuat kunci enkripsi yang diperlukan untuk menghasilkan token akses yang aman. Ini juga akan membuat klien "akses pribadi" dan "pemberian kata sandi" yang akan digunakan untuk menghasilkan token akses:

php artisan passport:install

Migrasi Database

Setelah menginstal Passport diatas, kamu perlu menjalankan perintah migrasi untuk membuat tabel yang diperlukan dalam database :

php artisan migrate

Selanjutnya, kamu perlu menambahkan ini Laravel\Passport\HasApiTokens ke model App\User kamu. Ini akan memberikan beberapa metode pembantu ke model kamu yang memungkinkan kamu untuk memeriksa token dan cakupan pengguna yang diautentikasi:

<?php

namespace App;

use Laravel\Passport\HasApiTokens;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use HasApiTokens, Notifiable;
}

Dan terakhir, kamu perlu mendaftarkan Passport routes dengan memanggil metode Passport::routes kedalam metode boot App\Providers\AuthServiceProvider kamu. kamu harus menempatkan pemanggilan ini dalam metode boot sehingga routes terdaftar setelah AuthServiceProvider dimuat:

<?php

namespace App\Providers;

use Laravel\Passport\Passport;
use Illuminate\Support\Facades\Gate;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;

class AuthServiceProvider extends ServiceProvider
{
    /**
     * The policy mappings for the application.
     *
     * @var array
     */
    protected $policies = [
        // ...
    ];

    /**
     * Register any authentication / authorization services.
     *
     * @return void
     */
    public function boot()
    {
        $this->registerPolicies();

        Passport::routes();
    }
}

kamu sekarang sudah dapat menggunakan Passport untuk mengautentikasi Laravel Breeze API kamu.

Selesai.