Tutorial Laravel JWT #3 : Installasi dan Konfigurasi JWT (Json Web Token)


Tutorial Laravel JWT #3 : Installasi dan Konfigurasi JWT (Json Web Token)

Halo teman-teman semuanya, pada artikel sebelumnya kita telah belajar bagaimana cara membuat project Laravel. Sekarang kita akan lanjutkan belajar bagaimana cara installasi dan konfigurasi JWT di dalam Laravel.

Langkah 1 - Install JWT di Laravel

Silahkan jalankan perintah berikut ini di dalam terminal/CMD dan pastikan sudah berada di dalam project Laravel-nya.

composer require tymon/jwt-auth:2.1.1

Silahkan tunggu proses installasi sampai selesai dan pastikan teman-teman terhubung ke dalam internet.

Setelah berhasil menginstall JWT, maka sekarang kita akan lanjutkan melakukan publish konfigurasi file. Silahkan jalankan perintah berikut ini di dalam terminal/CMD :

php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"

Jika perintah di atas berhasil dijalankan, maka kita akan mendapatkan 1 file baru, yaitu config/jwt.php. Di dalam file ini kita bisa melakukan kustom jika memang dibutuhkan. Seperti mengubah waktu expired token, jenis algoritma dan lain-lain.

Setelah itu, jalankan perintah berikut ini di dalam terminal/CMD untuk membuat sebuah screet key JWT :

php artisan jwt:secret

Jika perintah di atas berhasil dijalankan, maka di dalam file .env kita akan mendapatkan hasil seperti berikut ini :

JWT_SECRET=random_screet_key_jwt

Langkah 2 - Konfigurasi Guard API

Sekarang kita akan lanjutkan untuk melakukan konfigurasi guard API. Silahkan buka file config/auth.php, kemudian cari kode berikut ini.

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],
],

Kemudian ubah menjadi seperti berikut ini :

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],
    'api' => [                  
        'driver' => 'jwt',  
        'provider' => 'users',
    ],
],

Di atas, kita menambahkan guard baru dengan nama api dan di dalamnya kita tambahkan driver dengan value jwt dan untuk provider yang digunakan adalah users.

Langkah 3 - Konfigurasi Model User

Terakhir, kita akan melakukan sedikit penambahan kode di dalam Model User dengan menambahkan method. Silahkan buka file app/Models/user.php, kemudian ubah semua kode-nya menjadi seperti berikut ini.

<?php

namespace App\Models;

// use Illuminate\Contracts\Auth\MustVerifyEmail;
use Tymon\JWTAuth\Contracts\JWTSubject;
use Illuminate\Notifications\Notifiable;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable implements JWTSubject
{
    use HasFactory, Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array<int, string>
     */
    protected $fillable = [
        'name',
        'email',
        'password',
    ];

    /**
     * The attributes that should be hidden for serialization.
     *
     * @var array<int, string>
     */
    protected $hidden = [
        'password',
        'remember_token',
    ];

    /**
     * Get the attributes that should be cast.
     *
     * @return array<string, string>
     */
    protected function casts(): array
    {
        return [
            'email_verified_at' => 'datetime',
            'password' => 'hashed',
        ];
    }

    /**
     * Get the identifier that will be stored in the subject claim of the JWT.
     *
     * @return mixed
     */
    public function getJWTIdentifier()
    {
        return $this->getKey();
    }

    /**
     * Return a key value array, containing any custom claims to be added to the JWT.
     *
     * @return array
     */
    public function getJWTCustomClaims()
    {
        return [];
    }
}

Dari perubahan kode di dalam model User, pertama kita import sebuah Interface dari JWT.

use Tymon\JWTAuth\Contracts\JWTSubject;

Setelah itu, kita implement class User dengan JWTSubject.

class User extends Authenticatable implements JWTSubject //<-- implements JWTSubject
{

	//...

Dan terakhir, kita menambahkan 2 method di dalam class User, yaitu getJWTIdentifier dan getJWTCustomClaims.

/**
* Get the identifier that will be stored in the subject claim of the JWT.
*
* @return mixed
*/
public function getJWTIdentifier()
{
    return $this->getKey();
}

/**
* Return a key value array, containing any custom claims to be added to the JWT.
*
* @return array
*/
public function getJWTCustomClaims()
{
    return [];
}

Kurang lebih seperti itu bagaimana cara installasi dan konfigurasi JWT atau JSON Web Token di dalam Laravel. Di artikel selanjutnya kita akan belajar bagaimana cara membuat RESTful API untuk proses register daan login.

Terima Kasih



Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CO-Founder SantriKoding.com

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami