Skip to main content

Inisialisasi ACL Authentikasi di Project

Inisialisasi ACL Authentikasi di Project

alurkerja memiliki module auth dengan nama alurkerja-laravolt/auth module ini pengganti alurkerja-laravolt/rbac yang sudah tidak di maintain lagi. module ini memiliki fitur yang lebih lengkap dan lebih mudah untuk di gunakan.

Instalasi

untuk nenamabahkan tambahkan vcs repository composer config repositories.larvolt-auth vcs https://alurkerja-auth:javan-NL3GcMKVeodLit9nbje2@gitlab.javan.co.id/alurkerja/alurkerja-laravolt/alurkerja-auth dengan ini composer akan mengambil package dari repository ini.

setelah itu jalankan perintah composer require alurkerja-laravolt/alurkerja-auth:dev-master untuk menginstall package ini.

Inisialisasi

untuk menginisialisasi package ini, di bawah ini

 php artisan vendor:publish --provider="Laravolt\Auth\AclServiceProvider" --tag="migration" 

untuk menginstall migrationnya,

dan

 php artisan vendor:publish --provider="Laravolt\Auth\AclServiceProvider" --tag="test" 

untuk menginstall test,

    php artisan vendor:publish --provider="Laravolt\Auth\AclServiceProvider" --tag="api" 

untuk menginstall api nya,

atau jika semuanya langsung saja di run

    php artisan vendor:publish --provider="Laravolt\Auth\AclServiceProvider"

pada alurkerja auth sudah terdapat file file standar yang dapat di gunakan untuk membuat authentikasi, file termasuk Model , Service , dan Controller yang tinggal di override

Implementasi Pada Project

untuk menamnbahkan fungsi authentikasi cukup mengikuti

Instalasi Package

untuk melakukan installasi sebelumnya silahkan install alurkerja-laravolt/crud

tambahkan vcs repository

composer config repositories.laravolt-crud vcs https://gitlab.javan.co.id/alurkerja/alurkerja-laravolt/alurkerja-crud

install package

composer require alurkerja-laravolt/crud:dev-master

setelah isntallasi selesai, jalankan perintah berikut untuk menginstall package ini:

composer config repositories.larvolt-auth vcs https://alurkerja-auth:javan-NL3GcMKVeodLit9nbje2@gitlab.javan.co.id/alurkerja/alurkerja-laravolt/alurkerja-auth

install package

composer require alurkerja-laravolt/alurkerja-auth:dev-master

lakukan export vendor

php artisan vendor:publish --provider="Laravolt\Auth\AclServiceProvider"

edit file api.php


Route::post('/auth/login', [AuthController::class, 'login']);

Route::middleware(['auth:sanctum'])->group(function () {
// Discover::controllers()->in(app_path('Http/Controllers/Api/Crud'));
// Discover::controllers()->in(app_path('Http/Controllers/Api/Bpmn'));
});

Route::middleware('auth:sanctum')->group(function () {
Route::post('/auth/info', [AuthController::class, 'info']);
Route::post('/auth/logout', [AuthController::class, 'logout']);
});

update User.php agar bisa menggunakan sanctum

<?php

namespace App\Models;

// use Illuminate\Contracts\Auth\MustVerifyEmail;

use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;
use Laravolt\Crud\CrudModel;

use Illuminate\Auth\Authenticatable as AuthenticableTrait;
use Laravolt\Crud\Contracts\CrudUser;

class User extends CrudModel implements Authenticatable, CrudUser
{
use HasApiTokens, HasFactory, Notifiable, AuthenticableTrait;

/**
* 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',
];

/**
* The attributes that should be cast.
*
* @var array<string, string>
*/
protected $casts = [
'email_verified_at' => 'datetime',
'password' => 'hashed',
];

public function roles(): BelongsToMany
{
return $this->belongsToMany(Role::class, 'role_users', 'user_id', 'role_id');
}
}

sesuaikan file .env dengan database yang akan di gunakan

DB_CONNECTION=mysql
DB_HOST=
DB_PORT=
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=

untuk prove authentikasi, kita dapat menggunakan perintah berikut untuk menjalankan test yang sudah di export sebelumnya

php artisan test

berikut hasil yang akan di dapatkan jika installasi selesai dan berhasil

picture 0

Berikut jika api server sudah bisa di operasikan