Cara Membuat REST API dengan Laravel Sanctum untuk Pemula

Membuat REST API dengan autentikasi terlihat rumit, padahal Laravel Sanctum membuatnya sederhana. Sanctum cocok untuk API yang dipakai aplikasi mobile atau front-end SPA (Vue/React...

Cara Membuat REST API dengan Laravel Sanctum untuk Pemula
  1. Cara Membuat REST API dengan Laravel Sanctum untuk Pemula โ€” Anda di sini

Membuat REST API dengan autentikasi terlihat rumit, padahal Laravel Sanctum membuatnya sederhana. Sanctum cocok untuk API yang dipakai aplikasi mobile atau front-end SPA (Vue/React). Artikel ini memandu Anda membangun API dengan login berbasis token dari awal.

Langkah 1: Install Sanctum

composer require laravel/sanctum
php artisan migrate

Pada Laravel versi terbaru, Sanctum sudah otomatis siap dipakai untuk token API tanpa konfigurasi tambahan yang rumit.

Langkah 2: Siapkan Model User

Pastikan model User memakai trait HasApiTokens:

use Laravel\Sanctum\HasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens, HasFactory, Notifiable;
}

Langkah 3: Buat Endpoint Register & Login

Di routes/api.php, daftarkan route publik untuk register dan login:

Route::post('/register', [AuthController::class, 'register']);
Route::post('/login', [AuthController::class, 'login']);

Lalu buat controllernya. Contoh method login yang menghasilkan token:

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' => 'Kredensial salah'], 401);
    }

    $token = $user->createToken('auth_token')->plainTextToken;

    return response()->json([
        'access_token' => $token,
        'token_type' => 'Bearer',
    ]);
}

Langkah 4: Proteksi Endpoint dengan Middleware

Endpoint yang butuh login dibungkus middleware auth:sanctum:

Route::middleware('auth:sanctum')->group(function () {
    Route::get('/profile', function (Request $request) {
        return $request->user();
    });
    Route::post('/logout', [AuthController::class, 'logout']);
});

Langkah 5: Mengakses API dengan Token

Client mengirim token di header Authorization setiap request ke endpoint terproteksi:

Authorization: Bearer {access_token}
Accept: application/json

Tanpa header ini, endpoint terproteksi akan mengembalikan status 401 Unauthorized.

Langkah 6: Logout (Hapus Token)

public function logout(Request $request)
{
    $request->user()->currentAccessToken()->delete();
    return response()->json(['message' => 'Berhasil logout']);
}

Tips Penting

  • Selalu kirim header Accept: application/json agar Laravel mengembalikan error dalam format JSON, bukan halaman HTML.
  • Gunakan HTTPS di production agar token tidak bocor.
  • Untuk SPA di domain yang sama, Sanctum juga mendukung autentikasi berbasis cookie.

Kesimpulan

Dengan Laravel Sanctum, membuat REST API ber-autentikasi token cukup lima langkah: install, tambahkan trait, buat endpoint auth, proteksi route dengan auth:sanctum, dan kirim token via header Bearer. Dari sini Anda bisa mengembangkan API untuk aplikasi mobile atau front-end modern. Jangan lupa amankan dengan HTTPS saat deploy.

rest api laravel laravel sanctum api token laravel autentikasi api laravel cara membuat api laravel
Bagikan artikel
Kembali

Komentar (0)

Punya pertanyaan atau tambahan? Tulis di bawah โ€” tak perlu login.

Membalas komentarโ€ฆ batal

Belum ada komentar. Jadilah yang pertama!

๐Ÿš€ Partner Recommendation

Butuh Source Code & Aplikasi Premium?

Download aplikasi Laravel, POS, Sekolah, Klinik, ERP, dan source code siap pakai di GudangCode.

GudangCode
  • โœ” Source Code Premium
  • โœ” Sistem Siap Pakai
  • โœ” Lifetime Update
  • โœ” Membership Lifetime
  • โœ” Update Aplikasi Harian
Daftar Membership โ†’