Laravel Passport is a full OAuth2 server implementation for Laravel, which allows you to implement API authentication with Passport easily. Here are the steps to set up and use Laravel Passport to secure microservices communication:
1. Install Laravel Passport:
First, install Laravel Passport using Composer:
bashcomposer require laravel/passport
2. Run migrations:
After installation, run the migration command to create the necessary tables in the database:
bashphp artisan migrate
3. Install Passport:
Next, install Passport using the passport:install
Artisan command:
bashphp artisan passport:install
This command will create the encryption keys needed to generate secure access tokens.
4. Configure Passport:
In your AuthServiceProvider
, make sure to call the Passport::routes
method in the boot
method:
phpuse Laravel\Passport\Passport;
public function boot()
{
$this->registerPolicies();
Passport::routes();
}
This will register the routes necessary for issuing access tokens, refreshing tokens, and revoking tokens.
5. Set up your User model:
Make sure your User
model implements the HasApiTokens
trait:
phpuse Laravel\Passport\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens, Notifiable;
// ...
}
6. Create API routes:
Set up the routes for your API in the routes/api.php
file. For example:
phpRoute::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
7. Generate Passport keys:
Generate the Passport keys using the passport:keys
Artisan command:
bashphp artisan passport:keys
8. Configure Passport:
In your config/auth.php
file, set the driver for the api
guard to passport
:
php'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
],
9. Add middleware to your routes:
Apply the auth:api
middleware to routes you want to secure:
phpRoute::middleware('auth:api')->group(function () {
// Your secure routes here
});
10. Use Passport in microservices:
Now, you can use Passport to secure communication between your microservices. Each microservice can obtain an access token from the Passport-protected authentication service to make requests to other services.
Here are some additional useful links for further reference:
Make sure to refer to the official documentation for any updates or changes to the Laravel Passport implementation.