Laravel 9 REST API Authentication using Sanctum Tutorial
https://www.itsolutionstuff.com/post/laravel-9-rest-api-authentication-using-sanctum-tutorialexample.html
Hi Dev,
Here, I will show you how to work with laravel 9 sanctum API authentication example. you will learn laravel 9 rest API using sanctum. you can see laravel 9 sanctum spa API example. you can see laravel 9 sanctum API example.
Laravel 9 Sanctum provides a simple authentication system for SPAs (single page applications), mobile applications, and simple, token based APIs. Sanctum also allows each user of your application to generate multiple API tokens for their account.
If you also want to create API for your mobile application then you can follow this tutorial for how to create the rest API step by step with laravel 9 and sanctum. If you are new then don't worry about that I wrote the tutorial step by step.
Follow bellow few steps to create a restful API example in the laravel 9 app.

Step 1: Install Laravel 9
This step is not required; however, if you have not created the laravel app, then you may go ahead and execute the below command:
Step 2: Use Sanctum
In this step we need to install sanctum via the Composer package manager, so one your terminal and fire bellow command:
After successfully install package, we need to publish configuration file with following command:
we require to get default migration for create new sanctum tables in our database. so let's run bellow command.
Next, we need to add middleware for sanctum api, so let's add as like bellow:
app/Http/Kernel.php
Read Also: Laravel 9 CRUD Application Tutorial Example
Step 3: Sanctum Configuration
In this step, we have to configuration on three place model, service provider and auth config file. So you have to just following change on that file.
In model we added HasApiTokens class of Sanctum,
In auth.php, we added api auth configuration.
app/Models/User.php
Step 4: Add Product Table and Model
next, we require to create migration for products table using Laravel 9 php artisan command, so first fire bellow command:
After this command you will find one file in following path database/migrations and you have to put bellow code in your migration file for create products table.
After create migration we need to run above migration by following command:
After create "products" table you should create Product model for products, so first create file in this path app/Models/Product.php and put bellow content in item.php file:
app/Models/Product.php
Step 5: Create API Routes
In this step, we will create api routes for login, register and products rest api. So, let's add new route on that file.
routes/api.php
Step 6: Create Controller Files
in next step, now we have create new controller as BaseController, ProductController and RegisterController, i created new folder "API" in Controllers folder because we will make alone APIs controller, So let's create both controller:
app/Http/Controllers/API/BaseController.php
app/Http/Controllers/API/RegisterController.php
app/Http/Controllers/API/ProductController.php
Step 7: Create Eloquent API Resources
This is a very important step of creating rest api in laravel 9. you can use eloquent api resources with api. it will helps you to make same response layout of your model object. we used in ProductController file. now we have to create it using following command:
Now there created new file with new folder on following path:
app/Http/Resources/ProductResource.php
Run Laravel App:
All the required steps have been done, now you have to type the given below command and hit enter to run the Laravel app:
Now, Go to your postman and check following apis.
make sure in details api we will use following headers as listed bellow:
Read Also: Laravel 9 Send Mail using Gmail SMTP Server
Here is Routes URL with Verb:
Now simply you can run above listed url like as bellow screen shot:
1) Register API: Verb:GET, URL:http://localhost:8000/api/register

2) Login API: Verb:GET, URL:http://localhost:8000/api/login

3) Product List API: Verb:GET, URL:http://localhost:8000/api/products

4) Product Create API: Verb:POST, URL:http://localhost:8000/api/products

5) Product Show API: Verb:GET, URL:http://localhost:8000/api/products/{id}

6) Product Update API: Verb:PUT, URL:http://localhost:8000/api/products/{id}

7) Product Delete API: Verb:DELETE, URL:http://localhost:8000/api/products/{id}

You can download code from git: Download Code from Github
I hope it can help you...
Tags :
Last updated
Was this helpful?

