Membuat API Login dengan Laravel

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.

Check Also

Migrasi Database dengan CodeIgniter 4

Migrasi Database dengan CodeIgniter 4 CodeIgniter 4 menyediakan fitur migrasi database untuk mengelola perubahan skema …

Verified by MonsterInsights