Buat proyek baru Kita dengan menjalankan salah satu perintah berikut di terminal Kita:
laravel new [name] or composer create-project — prefer-dist laravel/laravel [name]
Menginstal dan Mengkonfigurasi Sanctum
Setelah Kita membuat proyek, instal Sanctum di proyek Kita, dan perbarui beberapa file untuk mengimplementasikan Sanctum.
Langkah #1 Pasang Laravel Sanctum
Jalankan perintah berikut untuk Menginstal Laravel
Sanctum: komposer membutuhkan laravel / sanctum
Langkah #2 Publikasikan Konfigurasi Sanctum dan File Migrasi
Publikasikan konfigurasitum dan file migrasi menggunakan perintah Artisan berikutnya. File konfigurasi sanctum akan ditempatkan di direktori konfigurasi Kita secara otomatis:
php artisan vendor:publish — provider=”Laravel\Sanctum\SanctumServiceProvider”
Langkah #3 Jalankan Migrasi Database
Jalankan migrasi database untuk membuat tabel database untuk token API dengan perintah berikut:
php artisan migrate
Langkah #4 Tambahkan Middleware Sanctum
Tambahkan middleware Sanctum ke grup middleware API Kita dengan perintah berikutnya
app/Http/Kernel.php
// this lineuse Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful;…protected $middlewareGroups = […‘api’ => [ // this line EnsureFrontendRequestsAreStateful::class, ‘throttle:60,1’, \Illuminate\Routing\Middleware\SubstituteBindings::class, ],];…],
Langkah #5 Gunakan Token untuk User
Untuk menggunakan token untuk pengguna, tambahkan sifat HasApiTokens di dalam model User.
app/User.php
use Laravel\Sanctum\HasApiTokens;class User extends Authenticatable{ use HasApiTokens, Notifiable;}
Membuat Database Seeder
Seeder dijalankan untuk mengisi database dengan informasi untuk menguji API.
Langkah #1 Membuat Seeder
Buat seeder untuk model User. Kita menggunakannya dalam langkah mendatang untuk menguji titik akhir Login Kita:
php artisan make:seeder UsersTableSeeder
Langkah #2 Sisipkan User Baru
Masukkan pengguna baru dengan informasi mereka.
DB::table(‘users’)->insert([ ‘name’ => ‘[YOUR NAME]’, ‘email’ => ‘[SOME EMAIL]’, ‘password’ => Hash::make(‘[SOME_PASSWORD]’)]);
Langkah #3 Mengisi Tabel User
Isi tabel pengguna dengan pengguna baru dengan menjalankan yang berikut:
php artisan db:seed — class=UsersTableSeeder
Catatan: Untuk memverifikasi bahwa pengguna telah dibuat dengan benar, Kita dapat menginstal MySQL Workbench dan melakukan SELECT ke tabel pengguna.
Membuat Pengontrol Autentikasi
Setelah mengisi database, buat controller autentikasi tempat fungsi login Kita akan hidup dengan mengikuti langkah-langkah berikut:
Langkah #1 Membuat controller Autentikasi dengan menjalankan:
php artisan make:controller AuthController
Langkah #2 Buka file AuthController.php dan tambahkan kode berikut untuk fungsi login:
public function login(Request $request){ try { $request->validate([ ‘email’ => ‘email|required’, ‘password’ => ‘required’ ]); $credentials = request([‘email’, ‘password’]); if (!Auth::attempt($credentials)) { return response()->json([ ‘status_code’ => 500, ‘message’ => ‘Unauthorized’ ]); } $user = User::where(‘email’, $request->email)->first(); if ( ! Hash::check($request->password, $user->password, [])) { throw new \Exception(‘Error in Login’); } $tokenResult = $user->createToken(‘authToken’)->plainTextToken; return response()->json([ ‘status_code’ => 200, ‘access_token’ => $tokenResult, ‘token_type’ => ‘Bearer’, ]); } catch (Exception $error) { return response()->json([ ‘status_code’ => 500, ‘message’ => ‘Error in Login’, ‘error’ => $error, ]); }}
User API
Karena ini adalah API, Kita menentukan route dalam file api.php
Tambahkan route yang memerlukan autentikasi di dalam grup middleware. Karena route login tidak menggunakan middleware otentikasi, ia berada di luar grup tengah.
route/api.php
Route::post(‘/login’, ‘Auth\AuthController@login’);Route::middleware([‘auth:sanctum’])->group(function () { Route::get(‘/users’, ‘UserController@index’);});
Dengan menentukan route, request GET memerlukan header Otorisasi baru untuk mengambil pengguna. Hal yang sama berlaku untuk request POST, PUT, dan DELETE, yang mengembalikan kode status tidak sah jika token tidak dikirim di header. Gambar berikut adalah contoh bagaimana konfigurasi ini terlihat di Postman.
Authorization = Bearer [API token]
Membuat Request
Buat request POST dari aplikasi Postman ke dalam API.
- Jalankan perintah ini di jendela terminal Kita:
php artisan serve
Perintah ini memperlihatkan API di http://127.0.0.1:8000 untuk terkena request.
2. Di Postman, tekan titik akhir Login.
Jawabannya berisi token dan jenisnya. Gambar berikut menggambarkan bagaimana tampilannya:
Kirim request GET untuk mengambil semua pengguna.
Ingat bahwa karena route ini menggunakan middleware Sanctum, Kita harus mengirim token yang diterima dalam request login dan menambahkannya di header sebagai header Otorisasi.
URL mirip dengan yang berikut:
http://127.0.0.1:8000/api/users
- Tambahkan header Otorisasi.
- Klik tombol Kirim.