Home PHP Framework Laravel Laravel development: How to implement API authentication using Laravel Passport and Lumen?

Laravel development: How to implement API authentication using Laravel Passport and Lumen?

Jun 15, 2023 pm 08:35 PM
lumen api authentication laravel passport

With the rapid development of mobile technology and cloud computing, many companies have developed their own API services and made them part of their core business. During this process, it becomes very important to protect API data and ensure that only authorized users can access this API data. Therefore, API authentication becomes an important topic. In Laravel and Lumen, API authentication can be implemented using Laravel Passport.

Laravel Passport is an API authentication system based on the OAuth2 standard. It provides an easy way to create API authentication and supports multiple clients and authorization methods. In this article, we will cover how to implement API authentication using Laravel Passport and Lumen.

Installation and configuration of Laravel Passport

First, we need to install Laravel Passport in the Laravel project. Use the following command to install:

composer require laravel/passport
Copy after login

After completing the installation, we need to run the following command to perform the necessary migrations:

php artisan migrate

php artisan passport:install
Copy after login

The above passport:install command will create the client and key for authentication. We also need to register the authentication route using the Passport::routes() method provided by Laravel Passport in the startup service provider:

// app/Providers/AuthServiceProvider.php

use LaravelPassportPassport;

// ...

public function boot() 
{
    // ...
    
    Passport::routes();
}
Copy after login

This will register the route provided by Laravel Passport so that we can use it to Authentication. At the same time, we also need to select the passport driver in the config/auth.php configuration file:

'guards' => [
    'api' => [
        'driver' => 'passport',
        'provider' => 'users',
    ],
],
Copy after login

Use Laravel Passport in Lumen

If our project uses the Lumen framework Created, then we can use the Lumen version of Laravel Passport, which provides a way to be compatible with Lumen. We can use the following command to install Laravel Passport:

composer require dusterio/lumen-passport
Copy after login

After the installation is complete, we need to add the following two lines of code to the bootstrap/app.php file to register the service provider of Lumen Passport:

$app->register(DusterioLumenPassportPassportServiceProvider::class);
$app->configure('auth');
Copy after login

After completing the registration, we need to register routing and middleware. We can add the following code to the app/Http/routes.php file to register the routes provided by Lumen Passport:

$app->group(['middleware' => ['api']], function ($app) {
    DusterioLumenPassportLumenPassport::routes($app, ['prefix' => 'auth']);
});
Copy after login

In the above code, the prefix option specifies the route prefix, middleware specifies the middleware used.

Next, we need to add the middleware provided by Lumen Passport. In the bootstrap/app.php file, add the following code to register the middleware:

$app->middleware([
    // ...
    DusterioLumenPassportHttpMiddlewareAddCustomHeaders::class,
]);
Copy after login

After registration, we have completed the configuration of using Laravel Passport in Lumen.

Use password authorization for authentication

Once we complete the configuration of Laravel Passport, we can use password authorization for authentication. In this authorization method, the client needs to use the client ID and secret key to request an access token, and then use the access token to request protected API resources.

We can use the following code to request the access token:

$postData = [
    'grant_type' => 'password',
    'client_id' => '{client-id}',
    'client_secret' => '{client-secret}',
    'username' => '{username}',
    'password' => '{password}',
    'scope' => '',
];

$ch = curl_init('http://api.example.com/oauth/token');
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);

$accessToken = json_decode($response)->access_token;
Copy after login

In the above code, we have used the curl library to request the access token from our API service. Please note that {client-id} and {client-secret} need to be replaced with the real client ID and secret, {username} and {password} needs to be replaced with real user credentials.

Once we obtain the access token, we can use it to access the protected API resource. When accessing the API, we need to put the access token in the Authorization header. You can do this in Laravel using the following code:

$response = Http::withHeaders([
    'Authorization' => 'Bearer ' . $accessToken,
])->get('http://api.example.com/api/user');
Copy after login

In the above code, we use Laravel's HTTP client to access the API. When the client makes a request, we put the access token in the Authorization header so that the API service can validate the token and return the protected resource.

Conclusion

Using Laravel Passport and Lumen, we can add strong authentication capabilities to our API services. When implementing API authentication, we need to understand the OAuth2 authorization protocol and its authorization method. When using password authorization, the client needs to use the client ID and secret key to request an access token. Once we obtain the access token, we can use it to access protected API resources.

The above is the detailed content of Laravel development: How to implement API authentication using Laravel Passport and Lumen?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to use the PHP framework Lumen to develop an efficient message push system and provide timely push services How to use the PHP framework Lumen to develop an efficient message push system and provide timely push services Jun 27, 2023 am 11:43 AM

With the rapid development of mobile Internet and changes in user needs, the message push system has become an indispensable part of modern applications. It can realize instant notification, reminder, promotion, social networking and other functions to provide users and business customers with better services. experience and service. In order to meet this demand, this article will introduce how to use the PHP framework Lumen to develop an efficient message push system to provide timely push services. 1. Introduction to Lumen Lumen is a micro-framework developed by the Laravel framework development team. It is a

How to use OpenID Connect for API authentication in PHP How to use OpenID Connect for API authentication in PHP Jun 17, 2023 pm 07:33 PM

In today's digital era, API authentication has become a widely used technical means. To keep API information secure, many websites and applications use the OpenIDConnect protocol for authentication. This protocol allows you to use a third-party identity provider (IdP) to authenticate users and provide your API with the ability to exchange identity tokens and access tokens. In this article, we will explore how to use OpenIDConnect for API authentication in PHP. Install PHP development

How to use Lumen framework in PHP How to use Lumen framework in PHP Jun 27, 2023 pm 04:49 PM

How to use the Lumen framework in PHP Lumen is a simplified version of the Laravel framework, which focuses on quickly building lightweight microservices and API applications. Lumen is an open source framework created and maintained by Taylor Otwell. It is known for its spectacular speed and performance. In this article, we will introduce how to use Lumen framework in PHP. 1. Install and configure the Lumen framework First, you need to install the composer tool in your system. Comp

Laravel development: How to implement API authentication using Laravel Passport and Lumen? Laravel development: How to implement API authentication using Laravel Passport and Lumen? Jun 15, 2023 pm 08:35 PM

With the rapid development of mobile technology and cloud computing, many companies have developed their own API services and made them part of their core business. During this process, it becomes very important to protect API data and ensure that only authorized users can access this API data. Therefore, API authentication becomes an important topic. In Laravel and Lumen, API authentication can be implemented using LaravelPassport. LaravelPassport is an OA-based

Implementing PHP security verification using Laravel Passport Implementing PHP security verification using Laravel Passport Jul 25, 2023 pm 09:33 PM

Introduction to PHP security verification using LaravelPassport: In modern web development, user authentication and authorization are very important security functions. LaravelPassport is an OAuth2-based authentication tool that can help us easily implement user authentication and authorization functions. This article will introduce how to use LaravelPassport to implement security verification in PHP. Steps: Install Laravel

How to use the PHP framework Lumen to develop an efficient message queue system How to use the PHP framework Lumen to develop an efficient message queue system Jun 27, 2023 pm 03:46 PM

With the continuous development of the Internet, the amount of data is becoming larger and larger, and more efficient ways are needed to process these large-scale data. The message queue system is an effective means to solve this problem. PHP is a very popular programming language that is widely used in Internet development. Some of the most popular CMS like WordPress, Drupal, and Joomla are written in PHP. Among PHP frameworks, Lumen is a lightweight framework for building efficient web applications and APs

Application and promotion of PSR2 and PSR4 specifications in Lumen microframework Application and promotion of PSR2 and PSR4 specifications in Lumen microframework Oct 15, 2023 am 11:21 AM

Application and promotion of PSR2 and PSR4 specifications in the Lumen microframework Introduction: With the widespread application and development of the PHP language, code specifications have become an important aspect to maintain code quality and readability. PHPFIG (PHPFIG, PHPFrameworkInteropGroup) has created a series of best practice specifications (PSR, PHPStandardsRecommendations) on PHP development, among which PSR2 and PSR

Laravel development: How to provide API authentication for SPA using Laravel Sanctum? Laravel development: How to provide API authentication for SPA using Laravel Sanctum? Jun 13, 2023 am 09:19 AM

Laravel development: How to provide API authentication for SPA using LaravelSanctum? With the popularity of Single Page Applications (SPA), we need a reliable way to protect our APIs from unauthorized access and attacks. LaravelSanctum is a lightweight authentication system provided by Laravel, which provides easy authentication for SPA. This article will show you how to use LaravelSanctum to provide an API for your SPA

See all articles