ijp / auth
user authentication using jwt which returns cookies access_token and refresh token which will be checked by middleware
Requires
- php: ^8.0
- firebase/php-jwt: ^6.11
- ramsey/uuid: ^4.7
- tymon/jwt-auth: ^2.2
README
Library untuk autentikasi dan otorisasi aplikasi Laravel.
Instalasi
Anda dapat menginstal library ini melalui Composer:
composer require ijp/auth-library
Setelah Instalasi
Setelah menjalankan composer require
, ada beberapa langkah yang perlu Anda lakukan:
-
Publish Konfigurasi
php artisan ijp:install
Perintah ini akan menyalin file konfigurasi ke folder
Controller,Middleware,Helper,Route,
aplikasi Anda.jika tidak muncul secara otomatis maka lajankan publis secara manual
php artisan vendor:publish --tag=jwt-auth-routes php artisan vendor:publish --tag=jwt-auth-migrations php artisan vendor:publish --tag=jwt-auth-routes
-
Impementasikan Jwt ke dalam model user
use Tymon\JWTAuth\Contracts\JWTSubject; use Ijp\Auth\Traits\IjpAuth; class User extends Authenticatable implements JWTSubject { use Notifiable , IjpAuth; protected $keyType = 'string'; // Implementasi metode yang diperlukan }
Pastikan model User Anda mengimplementasikan interface
JWTSubject
dan menggunakan traitNotifiable
. -
Tambahkan Middleware ke Kernel.php Jika Anda menggunakan middleware untuk autentikasi dan otorisasi, tambahkan middleware berikut ke dalam file
bootstrap/app.php
:->withMiddleware(function (Middleware $middleware) { $middleware->alias([ 'authcheck' => AuthCheck::class, ]); })
-
Jwt Secret Anda perlu mengatur JWT secret key. Jalankan perintah berikut untuk menghasilkan kunci rahasia:
php artisan jwt:secret
-
Controller Anda dapat menggunakan controller yang telah disediakan untuk melakukan autentikasi dan otorisasi. Berikut adalah contoh penggunaan controller:
use App\Http\Controllers\AuthController; Route::post('/login', [AuthController::class, 'login']);;
anda juga dapat mendesin controller sesuai kebutuhan anda
-
Helper Anda juga dapat menggunakan helper yang telah disediakan untuk melakukan autentikasi dan otorisasi. Berikut adalah contoh penggunaan helper:
use App\Helpers\ResponseJsonFormater;
anda juga dapat mendesin helper sesuai kebutuhan anda
Kontribusi
Silakan kontribusi dengan membuat pull request atau issue pada repository GitHub.