Danh sách Tutorial

Hướng dẫn cài đặt và sử dụng Laravel Passport


Nếu các bạn cần một Laravel Package mạnh về xác thực với full Oauth2 thì có lẽ Laravel Passport là sự lựa chọn hợp lý. Kế tiếp các bài về Laravel, hôm nay mình sẽ hướng dẫn các bạn cài đặt và sử dụng là Laravel Passport.

Laravel Passport là gì?

Laravel Passport là một package PHP cung cấp xác thực Oauth2 đầy đủ nhất cho ứng dụng laravel của bạn. Nó được phát triển bởi 2 nhà lập trình viên Andy Millington và Simon Hamp.

Hướng dẫn cài đặt Laravel Passport

Chú ý: Đây là hướng dẫn trên bản Laravel 9.x mới nhất tại thời điểm viết bài này.

Bước 1: Cài đặt Laravel Passport package qua Composer

Bắt đầu cài đặt chúng ta sử dụng công cụ composer.

composer require laravel/passport

Bước 2: Migrate database

php artisan migrate

Chú ý bạn nhớ tạo database và configure database trước nhé!

Sau khi cài đặt nó sẽ tạo ra các bảng CSDL như sau:

Bước 3: Cài đặt Laravel Passport

php artisan passport:install

Command này sẽ tạo encryption key cần cho việc tạo access token.

Bước 4: Cấu hình Laravel sử dụng Passport

Mặc đinh Laravel sử dụng Sanctum để xây dựng API, giờ chúng ta chuyển nó sang Passport.

Sửa file app/Models/User.php thay thế

use Laravel\Sanctum\HasApiTokens;

Bằng:

use Laravel\Passport\HasApiTokens;

Cuối cùng đoạn code model của chúng ta giống như là:

<?php
 
namespace App\Models;
 
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Passport\HasApiTokens;
 
class User extends Authenticatable
{
    use HasApiTokens, HasFactory, Notifiable;
}

Bước 5: Đăng ký Routes cho những API Auth cần thiết cho Passport

Sửa file app/Providers/AuthServiceProvider.php

<?php
 
namespace App\Providers;
 
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Gate;
use Laravel\Passport\Passport;
 
class AuthServiceProvider extends ServiceProvider
{
    /**
     * The policy mappings for the application.
     *
     * @var array
     */
    protected $policies = [
        'App\Models\Model' => 'App\Policies\ModelPolicy',
    ];
 
    /**
     * Register any authentication / authorization services.
     *
     * @return void
     */
    public function boot()
    {
        $this->registerPolicies();
 
        if (! $this->app->routesAreCached()) {
            Passport::routes();
        }
    }
}

Bước 6: Cuối cùng bạn set drive api của Laravel sang Passport

Sửa file config/auth.php

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],
 
    'api' => [
        'driver' => 'passport',
        'provider' => 'users',
    ],
],

Bước 7: Sử dụng Client UUIDs

php artisan passport:install --uuids

Sau khi chạy lệnh trên thì Passport sẽ sử dụng UUIDs thay cho Client Model primary key.

Nó sẽ yêu cầu bạn phải rollback lại tất cả các bảng CSDL

Bước 8: Deploy Passport

php artisan passport:keys

Khi deploy passport lần đầu tiên bạn cần phải chạy lệnh: passport:keys. Nó sẽ tạo encryption key để tạo các access token.

Để xây dựng hệ thống xác thực (Login/Register/Logout) các bạn vui lòng xem bài viết bên dưới.

Nguồn vinasupport.com

SHARE

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web