BLANTERORIONv101

Tutorial Membuat Aplikasi Android POS ( Point of Sale ) denga Framewok 7 #2

27 Januari 2024
Aplikasi POS Laravel dan Framework 7

Sahabat belajar-koding.com, kali ini akan membagikan tutorial  lanjutan bagai mana membuat aplikasi android dengan framework 7. untuk part 2 ini kita akan menginstall jwt (json web token). sebelum lanjut ke part 2 alangkah baik teman-teman membaca terlebih dahulu Tutorial Membuat Aplikasi Android POS ( Point of Sale ) denga Framewok 7 #1.

sebelum lanjut alakah baiknya kita mengetahui apa it jwt atau bisa di sebut dengan json web token, di mana pepatah mengatakan tak kenal maka tak tahu .

apa itu jwt ( Json Web Token ) menurut halaman resmi JWT ialah standar terbuka atau RFC7519 yang mendefinisikan cara untuk mentransmisikan suatu informasi dengan aman antara pihak sebagai objek JSON. untuk lebih detail nya bisa mengunjungi situ resminya ya.


1.Install JWT ( Json Web Token)

untukk mengsinstall jwt pastikan teman-teman terminal atau cmd nya masih dalam direktori project, setelah itu ketikan perintah di bawah ini

1
composer require php-open-source-saver/jwt-auth:1.4.2

jika perintah di atas berhasil maka akan tampil seperti di bawah ini



setelah proses instalasi selesai , tahap selanjutnya kita harus melakukan publish file konfigurasi. dengan membuka terminal pastikan terimal atau cmd kita masih dalam directory project yang kita buat.

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

jika berhasil akan file jwt.php d folder config seperti gambar di bawah ini


setelah berhasil kita harus membat secret di jwt dengan ketikan perintah

1
php artisan jwt:secret

perintah di atas akan menghasilkan key jwt seperti gambar di bawah ini


dikarenaka default dari GUARD api pada laravel menggunakan driver token, maka kita harus mensetting terlebih dahulu ke dalam jwt.

buka file auth.php yang berada dalam folder config dan rubah seperi gambar di bawah ini



setelah selesai kita masih harus mensetting model user default yang tergenerte automatis ketika kita insall framework laravel , buka file app/models/user.php, rubah kode seperti di bawah ini

<?php

namespace App\Models;

// use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;
use Illuminate\Database\Eloquent\Casts\Attribute;
use PHPOpenSourceSaver\JWTAuth\Contracts\JWTSubject;

class User extends Authenticatable
{
    use HasApiTokens, HasFactory, Notifiable;

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

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

    /**
     * The attributes that should be cast.
     *
     * @var array<string, string>
     */
    protected $casts = [
        'email_verified_at' => 'datetime',
        'password' => 'hashed',
    ];
    // /
    protected function image(): Attribute
    {
        return Attribute::make(
            get: fn ($value) => asset('/storage/users/' . $value),
        );
    }
    // /
    public function posts()
    {
        return $this->hasMany(Post::class);
    }

    //
    public function getJWTIdentifier()
    {
        return $this->getKey();
    }

    //
    public function getJWTCustomClaims()
    {
        return [];
    }

}

fungsi dari kode di bawah ini:

 protected $fillable = [
        'name',
        'email',
        'password',
        'address',
        'houseNumber',
        'phoneNumber',
        'city',
        'roles',
        'image',
    ];

$fillabel : ini adalah sebuat properti pada model Eloquent di Laravel yang menentukan kolom-kolom mana saja yang boleh di isi dengan di sebut (mass assignable). jadi jika kita tidak mengisi atau mendefinisakan akan di anggap semua kolom harus di isi dan ini berguna untuk menghidari resiko keamanan dengan membatasi kolom-kolom yang dapat di isi.

protected function image(): Attribute
    {
        return Attribute::make(
            get: fn ($value) => asset('/storage/users/' . $value),
        );
    }

berfungsi untuk menambahkan url image yang kita upload , karena kolom image type data berupa text , maka kita harus menambahk mutator attribute yang berfungsi untuk memudahkan kita dalam mengakses file gambar .

 public function getJWTIdentifier()
    {
        return $this->getKey();
    }

ini berfungsi untuk mendefinisikan jwt yang telah kita install.

 public function getJWTCustomClaims()
    {
        return [];
    }

kode di atas berfungsi untuk medapatkan token dengan klaim khusus yang berasal dari user.


untuk part 2 setting jwt sudah selesai, untuk part 3 kita akan membuat model .

List Part Pembuatan POS dengan Laravel dan Framework 7

1. Tutorial Membuat Aplikasi Android POS ( Point of Sale ) denga Framewok 7 #1

2. Tutorial Membuat Aplikasi Android POS ( Point of Sale ) denga Framewok 7 #2

3. Tutorial Membuat Aplikasi Android POS ( Point of Sale ) denga Framewok 7 #3

4.Tutorial Membuat Aplikasi Android POS ( Point of Sale ) denga Framewok 7 #4


Komentar