Restful Api Laravel dan Sanctum #2: Install Sanctum, Konfigurasi dan Uji Coba Login

Share:

Halo semua, kembali lagi di sahretech. Baiklah pada kesempatan kali ini kita akan melanjutkan tutorial ke-2 dari 6 tutorial cara membuat restful api laravel sanctum. Nah pada artikel kali ini kita akan install sanctum, konfigurasi, dan uji coba dengan postman. Ayo langsung ikuti tutorialnya berikut ini.


Ini adalah artikel ke-2 dari 6 artikel yang saya tulis. Jika kalian belum membaca artikel sebelumnya, silahkan klik tautan berikut ini https://www.sahretech.com/2021/02/restful-api-laravel-dan-sanctum-1.html untuk membaca. Disarankan untuk membaca tutorial ini dari part 1, karena setiap part saling berkaitan satu dengan yang lain. Tujuan artikel tutorial ini dipecah menjadi 6 bagian adalah agar lebih mudah dimengerti, tidak terlalu kepanjangan, dan gak bikin pusing dan muntah 😖.


1. Install Sanctum

Install laravel sanctum dengan menggunakna composer. Pertama masuk ke direktori project laravel-sanctum dengan cmd atau terminal. Lalu jalankan perintah di bawah ini.
    

composer require laravel/sanctum

Tunggu hingga proses download selesai. Lalu jalankan perintah di bawah ini agar konfigurasi sanctum dan file migrasi terpublish ke main project laravel-sanctum.

        
php
artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"

Setelah dijalankan maka otomatis akan ada file sanctum.php di dalam folder config dan ada personal_access_tokens file di dalam folder database/migrations

membuat restful api laravel dan sanctum
sanctum.php dan file migrasi




2. Migrasi dan Setting Sanctum

Setelah file personal_access_tokens otomatis dibuat di dalam folder database/migrations, langkah selanjutnya adalah melakukan migrasi agar personal_access_tokens menjadi tabel baru di dalam database laravel_sanctum. Jalankan perintah di bawah ini.
        

php artisan migrate

Buka http://localhost/phpmyadmin kalian, hasilnya ada 1 buah tabel baru yang masuk seperti gambar di bawah ini.

membuat restful api dengan laravel dan sanctum
Satu tabel baru di dalam db laravel_sanctum




Selanjutnya bukalah file kernel.php di dalam folder app/Http lalu tambahkan script di bawah ini. Kemudian save file.
        

use Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful; ... 'api' => [     EnsureFrontendRequestsAreStateful::class,     'throttle:60,1',     \Illuminate\Routing\Middleware\SubstituteBindings::class, ],


Selanjtunya bukalah file User.php di dalam folder app lalu ubah dan tambahkan script di dalam file tersebut dengan script di bawah ini
        

use Laravel\Sanctum\HasApiTokens; class User extends Authenticatable {     use HasApiTokens, Notifiable; }



3. Membuat Controller

Masuk ke tahap ke-3 sepertinya kalian sudah mulai mengerti alurnya. Kita akan membuat sebuah controller baru dengan nama LoginController, silahkan jalankan perintah berikut ini
        

php artisan make:controller LoginController

Kemudian bukalah file LoginController.php yang baru kita buat sebelumnya di dalam folder app/Http/Controllers lalu tambahkan script di bawah ini ke dalam file tersebut.
        

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\User; use Illuminate\Support\Facades\Hash; class LoginController extends Controller { public function index(Request $request) { //memvalidasi masukkan, email dan password wajib diisi $request->validate([ 'email' => 'required|email', 'password' => 'required', ]); // mengambil data user berdasarkan email yang dikirm $user= User::where('email', $request->email)->first(); //jika user dan password salah maka tampilkan pesan error if (!$user || !Hash::check($request->password, $user->password)) { return response([ 'success' => false, 'message' => ['These credentials do not match our records.'] ], 404); } //jika kondisi di atas bisa dilewati, selanjutnya buatlah token baru $token = $user->createToken('ApiToken')->plainTextToken; //isi response json berupa data user dan token $response = [ 'success' => true, 'user' => $user, 'token' => $token ]; //kembalikan atau tampilkan response return response($response, 201); } /** * logout * * @return void */ public function logout() { auth()->logout(); return response()->json([ 'success' => true ], 200); } }



4. Membuat Routing

Selanjutnya untuk bisa mengakses controller yang telah kita buat sebelumnya, kita perlu mendefinisikan route login dan logout terlebih dahulu. Bukalah file api.php di dalam folder routes. Silahkan ganti script di dalam file tersebut denga script di bawah ini.
        

Route::middleware('auth:sanctum')->get('/user', function (Request $request) {     return $request->user(); }); Route::post('/login', 'LoginController@index'); Route::get('/logout', 'LoginController@logout');

Harap perhatikan dengan seksama, karena tidak hanya menambah script baru, kita juga merubah middleware('auth:api') menjadi middleware('auth:sanctum')



5. Uji Coba dengan Postman

Sebelum melakukan uji coba, pastikan kalian sudah menjalankan php artisan serve dan menghidupkan service xampp. Bukalah aplikasi postman kalian, lalu sesuaikan dengan request seperti di bawah ini.

membuat restful api laravel dan sanctum
Uji coba dengan postman


Selanjutnya kita bisa menggunakan token untuk pengaman semua route CRUD nantinya. Kita perlu membuat controller dan membuat route seperti cara ke-3 dan ke-4. Untuk pemahasan CRUD restful api dengan token authentication akan kita bahas di artikel selanjuntya.

Sekian tutorial kedua tentang restful api laravel sanctum. Semoga tulisan singkat ini bermanfaat. Jika ada kendala saat belajar, silahkan tanyakan langsung di kolom komentar di bawah ini dan mari kita diskusikan bersama-sama. Oh, ya jangan lewatkan juga tutorial restful api laravel sanctum di part-part selanjutnya ya.


Tutorial Dalam Satu Seri yang Sama ✨
📰 Restful Api Laravel dan Sanctum #1: Install Laravel dan Insert Data User read more
📰 Restful Api Laravel dan Sanctum #2: Install Sanctum dan Uji Coba Login read more
📰 Restful Api Laravel dan Sanctum #3: Menampilkan Data dari Database read more
📰 Restful Api Laravel dan Sanctum #4: Input Data ke Dalam Database read more
📰 Restful Api Laravel dan Sanctum #5: Update Data ke Database read more
📰 Restful Api Laravel dan Sanctum #6: Menghapus Data dari Database read more

No comments

Jangan lupa kasih komentar ya!. Karena komentar kalian membantu kami menyediakan informasi yang lebih baik