Sanctum-Library

Logo
appstonelab
Blog Image

Sanctum is an easy package to issue API tokens to the users without the complication of OAuth. Sanctum provides authentication services based on Laravel built-in cookie base sessions. For small applications, I prefer using Sanctum because it’s simple and easy.

What is Laravel Sanctum?

Laravel Sanctum gives a lightweight authentication system for simple token based APIs and mobile applications, and single page applications (SPA). In Sanctum, we have two different ways mainly as mentioned below:

1) The API Token Authentication.
2) Single page application authentication.

This Authentication process is similar to API token Authentication process.

Now we shall understand the difference between the two processes.

1) The API token Authentication:

It uses a token that you must issue before you send a request to the server. You get a token via login or register routes, then you must include this token in the Authorization token as bearer token every next request.

2) The SPA Authentication:

This authentication process does not need tokens. Instead of this, it uses laravel integrated cookie base session auth services. When we use this process of authentication, we do not include a bearer token on every request. It is used when you build first-party SPA, for your front-end project in your Laravel project or any other different project for that matter.
You can check out the codes used to create a Rest API for Laravel application below:

1) Let’s create a new Laravel project:

composer create-project laravel/laravel –prefer-dist laravel-sanctum

2) After successfully creating a project, install the Laravel sanctum package:

composer require laravel/sanctum

3) You publish the Configuration and migration files using artisan command.The Sanctum configuration file is placed in your config directory:

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

4) Migrate your database:

php artisan migrate

5) If you utilize authentication and SPA. then you add middleware to api middleware group with your app/Http/Kernel.php file:

'api' => [
\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],

6) To start issue tokens for users, then User modal should use Laravel\Sanctum\HasAPITokens trait:

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

7) Route authentications:

Routing is one of the important features of a Laravel application. In this part, we will set up our API routes:
use App\Http\Controllers\AuthenticationController;
Route::post('/register', [AuthenticationController::class, 'createAccount']);

8) Create controller:

Php artisan make: controller AuthenticationController

9) Edit controller:

class AuthenticationController extends Controller
{
public function createAccount(Request $request)
{
$attr = $request->validate([
'name' => 'required|string|max:255',
'email' => 'required|string|email|unique:users,email',
'password' => 'required|string|min:6|confirmed'
]);
$user = User::create([
'name' => $attr['name'],
'password' => bcrypt($attr['password']),
'email' => $attr['email']
]);
return $this->success([
'token' => $user->createToken('tokens')->plainTextToken
]);
}

10) Let’s Test:

I have written a logic in the Controller above. The createAccount() method creates new validated users that generates tokens if successfully registered.

Conclusion:

In this blog, we tried explaining to you what Laravel sanctum is and how it works. We have elaborated a step-by-step procedure on how to authenticate and give access to users using Laravel sanctum.

By using this, you can authenticate faster and easier than any other library.

Related Post

View all
Blog Image

New AdonisJS Tools: FlyDrive, Transmit, Health Checks & More!

AdonisJS update introduces FlyDrive, Transmit, health checks & more, simplifying file storage, real-time events, debugging, and background tasks for faster Node.js development.

Blog Image

The behaviorism of design: 15 fundamentals every UI/UX designer should be aware of

1. Hick’s Law: Hick’s law is the most prevailing fundamental, along with the gestalt laws. It’s also very elementary to understand and practice. 2. Priming: Priming is a basic fundamental of psychology with a huge impact on user interface design: acknowledgment of something makes a user more likely to think and express in related ways at later steps in the interaction. 3. Cognitive Load The total analytic load, or portion of mental processing power required to use your site, impacts how effortlessly users discover content and finalize the tasks. 4. Progressive Disclosure Progressive disclosure postpones the improved or hardly used […]

Blog Image

Custom extensions in Dart

In this blog, I would like to share the amazing concept of Dart Extensions and how to make custom extensions for quality and optimised code. The specialty of this blog is that it will show you how to create extensions from your JSON models and it is very useful for state management. What are Extensions? Extension is used to enhance the feature of an existing class or a library. Using the extensions, one cannot change the existing properties of the class but can definitely change the view of class or model. Extensions are identical to the “prototype” of Javascript but […]

Blog Image

How To Flash Custom Rom on an Android Device

What Is a Custom Rom? (Android Read Only Memory) A file consisting the feasible requirements (a system image) of an Android OS and allied apps. The “stock ROM” comes inbuilt on the phone or tablet, whereas a “custom ROM” comes from an outsider.The custom ROM is either a distinctively improved OS, such as Cyanogen, or a stock version made accessible for older devices or for new devices before the vendor launch date. Why should you Use a Custom ROM? Flashing the ROM: Flashing a ROM means installing the system image into the device’s internal flash memory. Flash memory retains the […]

Blog Image

Top server security analysis tools

There are many server analysis tools available today and we will see some tools/websites which scan server/hostname for various security testing which I usually use. Sometimes we ignore small security points, but those points motivate hackers to hack sites. There are some concepts which secure the user (End user) data security. We can make our server/domain secure by HTTP/HTTPS, SSL/TLS, SMTP/PoP3, SSH, FTP, etc.. various tests on the site below which will list your vulnerabilities. 1. Observatory.mozilla.org This is one of the best sites to test server vulnerability. I always use this to scan first to check various security. It […]

Blog Image

Flutter Snippets

What is a snippet in flutter? Flutter snippets is a collection of commonly used flutter classes and methods. It increases your code speed of development by eliminating most of the boilerplate code associated with creating a widget. Currently, Awesome Flutter snippets provide different kinds of shortcuts for widgets. For example, StreamBuilder and SingleChildScrollView can be created by typing the shortcut streamBldr and singleChildSV respectively. Please find below few of the snippets with the respective shortcuts: Shortcut Expanded Description statelessW Stateless Widget Generates a Stateless widget statefulW Stateful Widget Generates a Stateful widget build Build Method Explains the part of the […]

Blog Image

How to Add Push Notifications to a Flutter App using Firebase Cloud Messaging?

What are push notifications: Push Notifications are a kind of pop-up messaging source that notifies the app users about the updates happening in the app. They also play an important role in boosting the user involvement in your app. The main motive of app push notifications is to provide information to the user so that he gets back to the application. These notifications emerge at the top of the smartphone screen even if the app is closed. Their detailed message gives the subscriber the below options: Click on the message, or swipe it off the screen and view it later […]

Blog Image

Deep linking

Deep linking technology has obtained substantial awareness over the past few years by permitting the marketers to upgrade their involvement with mobile app users. Deep links offer a comprehensible way for app publishers to rectify, convey, and transfer the users to a particular content within apps. Eventually, they can assist the app publishers boost the installs, user involvement, and conversions — the fundamental to any app’s accomplishment. Deep links are mobile links that manage much like hyperlinks, but instead of pointing out the users to a web page, deep links send them to a certain screen within a mobile application. […]

Blog Image

5 Tips for Managing Diversity in the Workplace

Workforce across the world is becoming increasingly diverse, and this has a huge impact on the management. We tried creating a guide with practical and actionable tips for managing diverse teams that are inclusive and positive. What is diversity in the workplace? Diversity in the workplace refers to an organization that intentionally employs a workforce comprised of individuals of range of characteristics, such as gender, religion, race, age, ethnicity, sexual orientation, education, and other attributes. Workplace diversity is a regular subject of discussion among employers, hiring managers, and recruitment skilled officials but diversity and inclusion in the workplace isn’t just […]

Blog Image

Getting started with Tailwind CSS

What is tailwind CSS? TailwindCSS is a utility-first CSS framework. This implies that they are primarily focused on utilities. They provide utility classes like flex, pt-4, bg-orange-100, and rotate-90 that can be combined for building modern user-friendly UI components. Their purpose isn’t necessarily to define your component’s appearance. Using the different classes they provide, you decide what to do. Why Tailwind CSS? An experienced CSS framework user or a total beginner might ask this question. Tailwind allows for full customization, allows the use of utility classes, and is a very low-level and basic CSS framework for anyone interested in using […]

Blog Image

Simple & Constructive methods to improve your Visual/UI Design

1. Get acquainted with design patterns Get accustomed with the UI/UX design patterns and what specific issues they solve. Generally speaking, design patterns are known as common reference points, guides, templates that designers might utilize to resolve a particular issue when designing a website or mobile app, so you do not have to revamp the wheel every single time trying to solve the problem. I’ve assembled a list of some of the best places to obtain the design specimen on the web: pttrns.com A great compilation of mobile design specimens uisources.com — mobile design samples & interactions uigarage.net — regular […]

Blog Image

What is SEO(Search Engine Optimization)?

Search engine optimization (SEO) consists of improving a website’s ranking in search engines and thereby boosting its traffic from search engines. The objective of SEO is to target unpaid traffic (also known as “organic” or “natural” results) rather than direct traffic or paid traffic. The crucial difference between SEO and paid advertising is that SEO involves “organic” ranking, which implies you don’t pay to be there in space. Search machine optimization means taking a chunk of online content and optimizing it, so search machines like Google show it towards the highest of the runners when someone searches for a commodity. […]

Hero Image

Ready to BuildYour Next Big Project?

Partner with our expert team for clear guidance, reliable solutions and faster, high quality delivery from idea to launch.

Get In Touch