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
Berikut jika api server sudah bisa di operasikan