Membuat API Login dengan Laravel
Laravel adalah framework PHP yang populer untuk membangun aplikasi berbasis web dan API. Artikel ini menjelaskan langkah-langkah membuat API login menggunakan Laravel.
1. Menyiapkan Struktur Database
Buat tabel user dengan migrasi bawaan Laravel:
php artisan make:migration create_users_table
Edit file migrasi di database/migrations/<timestamp>_create_users_table.php
:
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->string('api_token', 80)->unique()->nullable();
$table->timestamps();
});
Jalankan migrasi:
php artisan migrate
2. Membuat Controller Login
Buat file controller di app/Http/Controllers/Api/LoginController.php
:
<?php
namespace App\Http\Controllers\Api;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
use App\Http\Controllers\Controller;
class LoginController extends Controller {
public function login(Request $request) {
$request->validate([
'email' => 'required|email',
'password' => 'required'
]);
$user = User::where('email', $request->email)->first();
if (!$user || !Hash::check($request->password, $user->password)) {
return response()->json(['message' => 'Invalid credentials'], 401);
}
$apiToken = Str::random(60);
$user->api_token = $apiToken;
$user->save();
return response()->json([
'status' => 'success',
'message' => 'Login successful',
'api_token' => $apiToken
]);
}
}
?>
3. Menambahkan Rute
Tambahkan rute API di file routes/api.php
:
Route::post('login', [App\Http\Controllers\Api\LoginController::class, 'login']);
4. Pengujian API
Gunakan aplikasi seperti Postman untuk menguji endpoint POST /api/login
dengan body JSON berikut:
{
"email": "admin@example.com",
"password": "admin123"
}
Kesimpulan
Laravel menyediakan fitur bawaan seperti hashing dan validasi yang mempermudah pembuatan API login. Pastikan untuk menggunakan api_token
dengan baik untuk mengamankan endpoint API Anda.