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
|
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.
|
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)
{
$request->validate([
'email' => 'required|email',
'password' => 'required',
]);
$user= User::where('email', $request->email)->first();
if (!$user || !Hash::check($request->password, $user->password)) {
return response([
'success' => false,
'message' => ['These credentials do not match our records.']
], 404);
}
$token = $user->createToken('ApiToken')->plainTextToken;
$response = [
'success' => true,
'user' => $user,
'token' => $token
];
return response($response, 201);
}
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.
|
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
Tidak boleh menyertakan link atau promosi produk saat berkomentar. Komentar tidak akan ditampilkan. Hubungi 081271449921(WA) untuk dapat menyertakan link dan promosi