Matawebsite Promo Lebaran 2022

Membuat API dan Autentikasi dengan Sanctum

date 24 Aug 2021
date Lev Yasin
date 1279
date Web Programming
Membuat API dan Autentikasi dengan Sanctum

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.

  1. 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
  1. Tambahkan header Otorisasi.
  2. Klik tombol Kirim.
Matawebsite Promo
lev_yasin.png

Lev Yasin

Instruktur Web Programming Mataweb

Sangat tertarik dengan dunia Pemrograman Web & Mobile, saat ini fokus pada bagian Backend Web Developer, menggunakan PHP sebagai bahasa pemrograman utama, biasanya saya menggunakan Laravel.

Artikel Populer

Halo, ada yang bisa kami bantu?
Daftar Sekarang