Xác thực API với Laravel Sanctum 

14:43 27/06/2024

Trong kỷ nguyên công nghệ số hiện nay, việc bảo mật và quản lý truy cập vào các dịch vụ web và ứng dụng di động trở nên vô cùng quan trọng. Các API (Application Programming Interface) đóng vai trò then chốt trong việc kết nối và truyền tải dữ liệu giữa các ứng dụng khác nhau. Tuy nhiên, điều này cũng đặt ra nhiều thách thức về bảo mật, đặc biệt là khi cần xác thực và phân quyền truy cập một cách hiệu quả và an toàn.

Laravel, một framework PHP mạnh mẽ và phổ biến, cung cấp nhiều công cụ và thư viện để giải quyết các vấn đề bảo mật này. Trong đó, Laravel Sanctum nổi bật lên như một giải pháp nhẹ nhàng nhưng mạnh mẽ, cho phép xác thực API dễ dàng và hiệu quả. Sanctum giúp bảo vệ các endpoint API, hỗ trợ xác thực token và session, đồng thời cung cấp tính linh hoạt cao cho việc xây dựng các ứng dụng đơn trang (SPA), ứng dụng di động và các dịch vụ API.

Trong bài viết này, chúng ta sẽ cùng tìm hiểu về Laravel Sanctum, các tính năng nổi bật của nó, và cách thức cài đặt cũng như cấu hình ban đầu để sẵn sàng cho việc triển khai xác thực API trong dự án Laravel. Laravel Sanctum là lựa chọn tối ưu giúp bảo vệ các endpoint API và cung cấp trải nghiệm đăng nhập an toàn cho người dùng. Chúng ta sẽ bắt đầu với các bước khởi tạo và cấu hình cơ bản, trước khi tiến tới tích hợp các tính năng bảo mật nâng cao.

Khởi tạo và cấu hình cơ bản

  • Bước 1: Khởi tạo

Trước tiên, hãy đảm bảo rằng bạn đã cài đặt Laravel trên máy tính của mình. Bạn có thể sử dụng Composer để tạo một dự án Laravel mới:

Tiếp theo, chúng ta sẽ cài đặt Laravel Sanctum vào dự án:

Sau đó, xuất bản file cấu hình của Sanctum:

Chạy migration để tạo bảng personal_access_tokens trong cơ sở dữ liệu:

Bây giờ, chúng ta cần thêm middleware Sanctum vào nhóm middleware API trong file app/Http/Kernel.php:

  • Bước 2: Cấu Hình Sanctum

Trong file .env, đảm bảo rằng SESSION_DRIVER và SANCTUM_STATEFUL_DOMAINS được cấu hình đúng cách:

Bước 3: Tạo Token API

Để tạo token, bạn cần có một route và controller xử lý việc đăng nhập và tạo token:

  • Bước 4: Bảo vệ route API

Bạn có thể bảo vệ các route API bằng middleware auth:sanctum:

  • Bước 5: Sử dụng Token trong Request API

Khi bạn đã có token, bạn có thể sử dụng nó trong các yêu cầu API bằng cách gửi nó trong tiêu đề Authorization:

Triển khai xác thực OAuth2 với Sanctum

Ngoài xác thực thông qua token, Laravel Sanctum còn hỗ trợ xác thực OAuth2, cho phép chúng ta tích hợp với các nhà cung cấp xác thực bên ngoài như Google hoặc Facebook.

Để triển khai xác thực OAuth2 với Sanctum, bạn cần sử dụng trait HasApiTokens trong model User. Đảm bảo rằng model User đã kế thừa từ Illuminate\Foundation\Auth\User và sử dụng trait HasApiTokens. Điều này sẽ cho phép User model sử dụng các tính năng của Sanctum để quản lý token OAuth2 và xác thực với các dịch vụ bên ngoài.

   

Sau đó bạn có thể sử dụng phương thức createTokenWith2FA để tạo token xác thực OAuth cho người dùng:

  • KẾT LUẬN

Trong bài viết này, chúng ta đã tìm hiểu về cách triển khai xác thực API và OAuth2 trong Laravel sử dụng Laravel Sanctum. Laravel Sanctum cung cấp một cách tiếp cận đơn giản và hiệu quả để bảo vệ các dịch vụ API của bạn và cung cấp trải nghiệm đăng nhập an toàn cho người dùng.

Với các bước và ví dụ cụ thể trong bài viết này, bạn có thể triển khai xác thực API và OAuth2 một cách linh hoạt và mạnh mẽ trong dự án Laravel của mình. Sử dụng Laravel Sanctum và Laravel Passport, bạn có thể đảm bảo rằng dịch vụ API của bạn được bảo vệ một cách an toàn và hiệu quả.

Giảng viên: Trần Nguyễn Khánh Lâm
Bộ môn Công nghệ thông tin
FPT Polytechnic Hải Phòng

Hỗ trợ tư vấn và giải đáp thông tin tuyển sinh FPT Polytechnic

Cùng chuyên mục

Đăng ký nhập học tại FPT Polytechnic 2026

  • Max. file size: 50 MB.
  • Max. file size: 50 MB.
  • Max. file size: 50 MB.