Tutorial Laravel 11 RESTful API #7 Login API

Belajar membuat RESTful API dengan Laravel 11 melalui tutorial step-by-step yang mudah dipahami. Laravel 11 menawarkan fitur terbaru dan lebih optimal untuk membangun API yang cepat, aman, dan scalable.

✅ Telah dilihat 1331 kali

Rating: 5.00 ⭐

... 12 March 2025, 16:05

Function Login

Selain pada register, fungsi ini bertindak sebagai gerbang utama bagi pengguna untuk mendapatkan token. Token yang diberikan digunakan sebagai kunci autentikasi untuk mengakses URL yang memerlukan token sebagai bagian dari sistem keamanan API.

Penjelasan ini menekankan bahwa token berfungsi untuk autentikasi dan memberikan akses ke API yang dilindungi. Tambahkan fungsi login berikut ke dalam AuthController:

public function login(Request $request)
    {
        // Validasi input
        $validator = Validator::make($request->all(), [
            'email' => 'required|email',
            'password' => 'required',
        ]);

        if ($validator->fails()) {
            return response()->json([
                'success' => false,
                'message' => 'Validation errors occurred.',
                'errors' => $validator->errors(),
            ], 422);
        }

        // Verifikasi kredensial
        if (Auth::attempt(['email' => $request->email, 'password' => $request->password])) {
            $user = Auth::user();
            $responseData = [
                'token' => $user->createToken($user->name)->plainTextToken,
                'name' => $user->name,
            ];

            // Kirim respons sukses
            return response()->json([
                'success' => true,
                'message' => 'Login successful.',
                'data' => $responseData,
            ], 200);
        }

        // Kredensial salah
        return response()->json([
            'success' => false,
            'message' => 'Invalid credentials.',
        ], 401);
    }

Validasi Input: Memastikan bahwa email dan password yang dikirimkan oleh pengguna sesuai dengan aturan yang ditentukan (email wajib valid dan password wajib ada). Kemudian ada juga Respons Sukses, yakni mengirimkan respons JSON yang berisi status sukses, pesan, dan data token pengguna.

Konfigurasi Rute Login

Silakan buka file rute yakni api.php, kemudian ubah menjadi seperti berikut ini:

<?php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\AuthController;

Route::middleware('auth:sanctum')->group(function () {
    Route::get('/user', [AuthController::class, 'getUser']);
});

Route::middleware('web')->group(function () {
    Route::post('register', [AuthController::class, 'register']);
    Route::post('login', [AuthController::class, 'login']);
    Route::post('logout', [AuthController::class, 'logout']);
});

Test API

Endpoint Methode
http://127.0.0.1:8000/api/login POST

Silakan buat request baru dengan nama request LOGIN dengan menggunakan methode POST . Lebih jelasnya bisa dilihat pada gambar berikut ini

Pada materi berikutnya, kita akan membuat API untuk manajemen data product.

Daftar eBook