Pada tutorial kali ini kita akan belajar cara Membuat API Login dengan Laravel.
Tutorial ini merupakan lanjutan dari tutorial Membuat Login pada Laravel. Jadi silahkan ikuti dulu tutorial Login Laravel agar tidak kebingunan melanjutkan tutorial API Login Laravel ini.
Cara Membuat API Login dengan Laravel adalah sebagai berikut:
1. Membuat Tabel Users
Gunakan tabel users yang sudah ada, lalu tambahkan field api_token pada tabel users tersebut.
2. Membuat User Model
Kita memakai user model yang sudah ada sebelumnya, berada pada folder app/Models/User.php.
Sesuaikan lagi isi dari user model menjadi seperti berikut:
<?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;
class User extends Authenticatable
{
use HasFactory, Notifiable;
protected $table = 'users';
protected $primaryKey = 'id_user';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'username',
'password',
'api_token',
'role',
];
}
3. Membuat Route
Biasanya kita membuat route laravel pada file web.php di folder routes/web.php. Kali ini kita membuat route untuk API laravel yaitu pada file api.php yang berada pada folder routes/api.php.
Isi dari route api.php adalah sebagai berikut:
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ApiController;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
// default route
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
// new route
Route::post('login', [ApiController::class, 'login']);
4. Membuat Controller
Sekarang kita membuat controller baru dengan nama ApiController. Buat controller baru dengan perintah php artisan make:controller ApiController
Maka file dengan nama ApiController.php akan dibuat otomatis pada folder app/Http/Controllers/ApiController.php
Isi dari ApiController.php sebagai berikut:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Str;
class ApiController extends Controller
{
public function login(Request $request)
{
$login = Auth::Attempt($request->all());
if ($login) {
$user = Auth::user();
$user->api_token = Str::random(100);
$user->save();
// $user->makeVisible('api_token');
return response()->json([
'response_code' => 200,
'message' => 'Login Berhasil',
'conntent' => $user
]);
}else{
return response()->json([
'response_code' => 404,
'message' => 'Username atau Password Tidak Ditemukan!'
]);
}
}
}
5. Testing API dengan Postman
Kita lakukan uji coba API login laravel dengan menggunakan Postman.
Cara testing API dengan Postman sebagai berikut:
- Buka aplikasi Postman
- Buat workspace baru
- Masukkan URL API yang akan dilakukan uji coba
- Jangan lupa method-nya adalah POST
- Pilih Body->form-data->masukkan key username dan pasword
- Lalu klik Send
- Login Berhasil
- Login Gagal
Sekian tutorial Membuat API Login dengan Laravel. Artikel ini adalah sebagai dokumentasi pribadi saya sehingga bahasa dan penulisannya dibuat singkat.
Semoga bisa bermanfaat untuk Anda.
Leave a Reply