Auth API
Set Route
Sekarang kita akan mulai dengan membuat controller-nya terlebih dahulu, silahkan jalankan perintah berikut ini di dalam
terminal/CMD :
Perintah di atas akan digunakan untuk membuat controller baru dengan nama LoginController yang berada di dalam folder
app/Http/Controllers/Api/Admin/ . Dan ditandai dengan informasi seperti pada gambar dibawah ini :
Sekarang buka file tersebut kemudian rubah kode-nya menjadi seperti berikut ini :
<?php
namespace App\Http\Controllers\Api\Admin;
use Illuminate\Http\Request;
use PHPOpenSourceSaver\JWTAuth\Facades\JWTAuth;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
/**
* getUser
*
* @return void
*/
public function getUser()
{
//response data "user" yang sedang login
return response()->json([
'success' => true,
'user' => auth()->guard('api')->user()
], 200);
}
/**
* Refresh a token.
*
* @return \Illuminate\Http\JsonResponse
*/
public function refreshToken(Request $request)
{
//refresh "token"
$refreshToken = JWTAuth::refresh(JWTAuth::getToken());
/**
* logout
*
* @return void
*/
public function logout()
{
//remove "token" JWT
$removeToken = JWTAuth::invalidate(JWTAuth::getToken());
}
}
Route Login
Setelah berhasil membuat controller dan menambahkan method-method di dalamnya, maka sekarang kita lanjutkan untuk
membuat route agar method-method tersebut dapat digunakan di gunakan oleh aplikasi lain atau sering dikenal dengan URL
Design yang sudah kita bahas di awal bab.
Silahkan buka file routes/api.php kemudian ubah kode-nya menjadi seperti berikut ini :
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
Route::prefix('admin')->group(function () {
//route login
Route::post('/login', [App\Http\Controllers\Api\Admin\LoginController::class, 'index']);
//data user
Route::get('/user', [App\Http\Controllers\Api\Admin\LoginController::class, 'getUser']);
//logout
Route::post('/logout', [App\Http\Controllers\Api\Admin\LoginController::class, 'logout']);
});
});
Dari routes di atas kita berhasil membuat url design sebagai berikut :
1. http://localhost:8000/api/admin/login
2. http://localhost:8000/api/admin/user
3. http://localhost:8000/api/admin/refresh
4. http://localhost:8000/api/admin/logout