Tutorial Laravel 13 REST API Authentication #5 – Mendapatkan Info User Login & Testing API

Panduan lengkap membuat REST API authentication di Laravel 13. Dalam tutorial ini, teman-teman akan belajar membuat fitur register, login, logout, dan mendapatkan informasi user yang sedang login menggunakan API, lengkap dengan validasi dan penanganan error. Cocok untuk pemula yang ingin memahami autentikasi berbasis API di Laravel.

✅ Telah dilihat 216 kali

Rating: 5.00 ⭐

... 18 March 2026, 10:41

Function Get User

Pada materi kali ini, kita akan membuat sebuah function yang bertujuan untuk mendapatkan detail data user yang sedang login. Pada API register sebelumnya, ketika user berhasil melakukan proses registrasi, maka secara otomatis akan mendapatkan tokenToken ini nantinya akan kita gunakan untuk mendapatkan detail data user. Silakan buka file AuthController.php, kemudian tambahkan function berikut ini:

public function getUser(Request $request)
    {
        return response()->json([
            'success' => true,
            'data' => $request->user(),
        ], 200);
    }

$request->user() Mengambil data user yang sedang terautentikasi berdasarkan token yang dikirimkan di header.

Sehingga secara keseluruhan, file AuthController.php saat ini akan tampak seperti berikut:

<?php

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Models\User;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Hash;
use Illuminate\Validation\Rules\Password;

class AuthController extends Controller
{
    public function register(Request $request)
    {
        // Validasi input
        $validator = Validator::make($request->all(), [
            'name' => 'required|string|max:255',
            'email' => 'required|string|email|max:255|unique:users,email',
            'password' => ['required', 'confirmed', Password::defaults()],
        ]);

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

        try {
            // Buat user baru
            $user = User::create([
                'name' => $request->name,
                'email' => $request->email,
                'password' => Hash::make($request->password),
            ]);

            // Login user dan buat token
            Auth::login($user);
            $responseData = [
                'token' => $user->createToken($user->name)->plainTextToken,
                'name' => $user->name,
            ];

            // Kirim respons sukses
            return response()->json([
                'success' => true,
                'message' => 'User successfully registered.',
                'data' => $responseData,
            ], 201);
        } catch (\Exception $e) {
            // Tangani kesalahan server
            return response()->json([
                'success' => false,
                'message' => 'An error occurred during registration.',
                'errors' => ['server_error' => $e->getMessage()],
            ], 500);
        }
    }
    public function getUser(Request $request)
    {
        // Mengembalikan data pengguna yang sedang terotentikasi
        return response()->json([
            'success' => true,
            'data' => $request->user(),
        ], 200);
    }
}

Deklarasi Fungsi

public function getUser(Request $request)
  • Fungsi getUser adalah method publik pada controller Laravel.
  • Menerima parameter $request yang berisi objek Illuminate\Http\Request, termasuk informasi pengguna yang sedang login.
  • Fungsi ini biasanya dipanggil oleh client untuk mengambil data user yang sedang terotentikasi.

2. Mengembalikan Data User

return response()->json([
    'success' => true,
    'data' => $request->user(),
], 200);
  • response()->json([...], 200) → membuat respon JSON dengan status HTTP 200 OK.
  • Struktur JSON yang dikirim ke client:
    • success: true → menandakan request berhasil.
    • data: $request->user() → mengambil user yang sedang login, yaitu:
      • Laravel secara otomatis mengisi $request->user() dengan user dari token (jika menggunakan Sanctum atau Passport) atau session.
      • Berisi informasi user seperti idnameemail, dsb.

Ringkasan Alur

  1. Client melakukan request ke endpoint getUser.
  2. Laravel mengecek token atau session untuk mengetahui user yang login.
  3. $request->user() mengembalikan objek user yang sedang terotentikasi.
  4. Fungsi membungkus data ini ke JSON dan mengirim response dengan status 200.

Konfigurasi Rute Get User

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::post('register', [AuthController::class, 'register']);

Route::middleware('auth:sanctum') Menentukan bahwa rute dalam grup ini hanya bisa diakses oleh user yang telah login dan memiliki token autentikasi (middleware auth:sanctum).

Test API

Endpoint Methode
http://127.0.0.1:8000/api/user GET

Silakan buat request baru dengan nama request Get User Info dengan menggunakan methode GET kemudian pada header silakan masukkan key dan value berikut ini:

Key Value
Accept application/json
Authorization Bearer (TOKEN YANG DIDAPAT SETELAH REGISTER)

Catatan:

  • Gantilah (TOKEN YANG DIDAPAT SETELAH REGISTER) dengan token autentikasi yang Anda terima saat proses register berhasil.
  • Dengan request ini, Kita akan mendapatkan detail data user yang sedang login dalam format JSON.

Jika kita coba klik send maka akan muncul seperti berikut ini:

Terlihat kita sudah berhasil mendapatkan data user yang sudah teregistrasi dan mendapatkan token. pada materi berikutnya, kita akan menambahkan function Login dan Juga Log Out.

Daftar eBook