Skip to main content

Simplify Your Tax Calculations with GST Calculator 2024: The Ultimate Tool for Businesses and Individuals

Title: Understanding Laravel Passport Authentication System: A Comprehensive Guide with Code Examples

Laravel, one of the most popular PHP frameworks, provides a robust authentication system known as Laravel Passport. Passport simplifies the implementation of OAuth2 server capabilities, making it easy to secure your API routes and control access to your application. In this blog post, we'll explore the fundamentals of Laravel Passport authentication and guide you through the process with detailed code examples.


Before we dive into Laravel Passport, ensure you have a Laravel application up and running. If you haven't already installed Laravel, you can do so using Composer:

composer create-project --prefer-dist laravel/laravel your-project-name

Once your Laravel project is ready, let's begin by installing Laravel Passport.

Step 1: Install Passport:

Use the following Composer command to install Laravel Passport:

composer require laravel/passport



After installation, run the migration command to create the necessary tables in your database:


php artisan migrate

Step 2: Configure Passport:

Next, you'll need to add the Passport service provider and run the Passport install command:
php artisan passport:install

This command generates encryption keys and other necessary configurations for Passport.

Step 3: Update User Model:

In your User model (typically located at app\Models\User.php), add the HasApiTokens trait:
1
2
3
4
5
6
7
8
use Laravel\Passport\HasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens, Notifiable;

    // Rest of your user model code...
}

Step 4: API Routes:

Define the routes that you want to protect using Passport in the routes/api.php file:
1
2
3
Route::middleware('auth:api')->group(function () {
    // Your protected API routes go here
});

Step 5: Passport Middleware:

Ensure your App\Http\Kernel.php file includes the \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class middleware:

1
2
3
4
5
6
7
protected $middlewareGroups = [
    'web' => [
        // ...
        \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
    ],
    // ...
];

Step 6: Passport Configuration:

Customize your Passport configuration in the config/auth.php file. Set the driver option in the api guard to passport:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'passport',
        'provider' => 'users',
    ],
],

Conclusion:

Congratulations! You've successfully set up Laravel Passport for authentication in your Laravel application. Passport makes it easy to secure your API routes and control access to your application by providing a powerful OAuth2 server out of the box. Explore more Passport features, such as scopes and client management, to enhance the security and functionality of your Laravel API. Happy coding!

Comments

Popular posts from this blog

How to Insert Multiple rows in a single db transaction in Android Room Database? | Android | Room DB

  To insert multiple rows into a Room database in Android, you can follow these steps: 1. Set up Room Database: First, make sure you have set up your Room database correctly in your Android project. Define your Entity class, create a Database class that extends RoomDatabase, and set up your DAO (Data Access Object) interface. 2. Create Entity Class: Define an Entity class that represents the data you want to insert into the database. For example: 1 2 3 4 5 6 7 8 9 @Entity (tableName = "my_table" ) public class MyEntity { @PrimaryKey (autoGenerate = true ) public int id; public String name; public int age; // Add other fields and getters/setters as needed } Create DAO: Create a DAO interface with a method to insert multiple rows. For example: 1 2 3 4 5 @Dao public interface MyEntityDao { @Insert void insertAll (List<MyEntity> entities); } Initialise Database and DAO: In your application code, create an insta...

How to fetch Latitude, Longitude from address and vice-versa(address from Latitude, Longitude) using Google Geo coder SDK in android| Kotlin

 In this Android development related article, you will get a simple solution that, how to get address using Latitude, Longitude and vice-versa. i.e latitude, longitude from an address text. It is very easy and simple. Read full article and carefully follow all the steps. Here we use google Geocoder SDK. Okay, first we create an android project in kotlin and create an Activity say MainActivity.kt. Use the below code- Function get Latitude, Longitude from Address- fun getLatLngFromAddress (context: Context, mAddress: String): String { val coder = Geocoder(context) lateinit var address: List<Address> try { address = coder.getFromLocationName(mAddress, 5 ) if (address == null ) { return "Fail to find Lat,Lng" } val location = address[ 0 ] return " Latitude: ${location.latitude}\n Longitude: ${location.longitude}" } catch (e: Exception...

onBackPressed() method is deprecated, you are looking for an alternative? Here It is the Latest Solution in android | Kotlin

With the evolution of Android development, several APIs and functions get deprecated over time to make way for more robust and flexible alternatives. One such deprecation that developers need to be aware of is the onBackPressed() method in Android. In Android, onBackPressed() was commonly used to handle back button presses within an activity. However, with the introduction of the Jetpack libraries and the emphasis on more structured navigation, this method has been deprecated. This blog will explore why onBackPressed() is deprecated and what the best alternative solutions are in Kotlin for handling back navigation. Why onBackPressed() is Deprecated The primary reasons for deprecating onBackPressed() include: Improved Navigation Architecture: Android Jetpack's Navigation Component provides a more consistent and predictable way to handle navigation, including back navigation. Lifecycle Awareness: Handling back...