Làm cách nào để bạn nhận được mã thông báo thánh địa?

Trong hướng dẫn này, chúng ta sẽ xem xét gói sanctum của Laravel. Chúng tôi sẽ thảo luận về cách nó có thể được sử dụng để xác thực Ứng dụng một trang [SPA] hoặc thậm chí API dựa trên mã thông báo

Chúng tôi sẽ tạo một dự án Laravel đơn giản, cấp cho người dùng mã thông báo API và xác thực ứng dụng bằng phiên có sẵn của Laravel

Bài viết cũng sẽ nêu ra những ưu điểm của gói Sanctum so với Laravel passport

Mục lục

điều kiện tiên quyết

  • Kiến thức cơ bản về Laravel
  • Bạn sẽ cần cài đặt các công cụ kiểm tra API như Postman

Khách quan

Đến cuối hướng dẫn này, bạn sẽ có thể xác thực lệnh gọi API của người dùng và Ứng dụng một trang [SPA] bằng cách sử dụng Laravel Sanctum

Thiết lập dự án

Hãy thiết lập một dự án Laravel và cài đặt gói Sanctum

laravel new sanctumApp

Lệnh trên tạo khung dự án Laravel của bạn. Quá trình này có thể mất một lúc tùy thuộc vào kết nối internet của bạn

Tiếp theo,

cd sanctumApp
composer require laravel/sanctum
6 vào thư mục gốc của dự án của bạn và chạy lệnh sau

cd sanctumApp
composer require laravel/sanctum

đầu ra

 - Installing laravel/sanctum [v2.11.2]: Downloading [100%]         
.................
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/sail
Discovered Package: laravel/sanctum
Discovered Package: laravel/tinker
....................

Bây giờ chúng tôi đã cài đặt

cd sanctumApp
composer require laravel/sanctum
7, chúng tôi cần định cấu hình và di chuyển các tệp bằng cách chạy lệnh sau

php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"

đầu ra

Copied Directory [/vendor/laravel/sanctum/database/migrations] To [/database/migrations]
Copied File [/vendor/laravel/sanctum/config/sanctum.php] To [/config/sanctum.php]
Publishing complete.

Với các tệp sanctum đã được xuất bản, bây giờ chúng ta hãy thiết lập cơ sở dữ liệu của chúng ta bằng cách chỉnh sửa nội dung tệp

cd sanctumApp
composer require laravel/sanctum
8 như sau

________số 8

Bây giờ, hãy tiếp tục và tạo cơ sở dữ liệu của chúng ta trên

cd sanctumApp
composer require laravel/sanctum
9 bằng cách chạy lệnh sau trong dòng lệnh

cd sanctumApp
composer require laravel/sanctum
0

đầu ra

cd sanctumApp
composer require laravel/sanctum
1

Trước ________ 30, hãy chạy lệnh SQL bên dưới để tạo cơ sở dữ liệu

cd sanctumApp
composer require laravel/sanctum
7

cd sanctumApp
composer require laravel/sanctum
4

đầu ra

cd sanctumApp
composer require laravel/sanctum
5

Bây giờ hãy tiến hành di chuyển ứng dụng của chúng ta như hình bên dưới

cd sanctumApp
composer require laravel/sanctum
0

đầu ra

cd sanctumApp
composer require laravel/sanctum
1

Bạn sẽ nhận thấy rằng bảng

 - Installing laravel/sanctum [v2.11.2]: Downloading [100%]         
.................
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/sail
Discovered Package: laravel/sanctum
Discovered Package: laravel/tinker
....................
2 được tạo. Điều này rất quan trọng cần lưu ý vì chúng ta sẽ cần đến nó sau này trong bài viết

Với thiết lập cơ sở dữ liệu của chúng tôi, một bước cuối cùng chúng tôi cần là thông báo cho mô hình

 - Installing laravel/sanctum [v2.11.2]: Downloading [100%]         
.................
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/sail
Discovered Package: laravel/sanctum
Discovered Package: laravel/tinker
....................
3 về gói này

Hãy xem điều này được thực hiện như thế nào

cd sanctumApp
composer require laravel/sanctum
2

Trong mô hình

 - Installing laravel/sanctum [v2.11.2]: Downloading [100%]         
.................
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/sail
Discovered Package: laravel/sanctum
Discovered Package: laravel/tinker
....................
3 ở trên, chúng tôi đã nhập tính trạng
 - Installing laravel/sanctum [v2.11.2]: Downloading [100%]         
.................
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/sail
Discovered Package: laravel/sanctum
Discovered Package: laravel/tinker
....................
5 từ
 - Installing laravel/sanctum [v2.11.2]: Downloading [100%]         
.................
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/sail
Discovered Package: laravel/sanctum
Discovered Package: laravel/tinker
....................
6. Đặc điểm này cho thấy phương thức
 - Installing laravel/sanctum [v2.11.2]: Downloading [100%]         
.................
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/sail
Discovered Package: laravel/sanctum
Discovered Package: laravel/tinker
....................
7 mà chúng tôi sẽ sử dụng để phát hành mã thông báo

Xác thực tuyến đường

Định tuyến là một trong những tính năng cốt lõi của ứng dụng Laravel. Trong phần này, chúng tôi sẽ thiết lập các tuyến đường

 - Installing laravel/sanctum [v2.11.2]: Downloading [100%]         
.................
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/sail
Discovered Package: laravel/sanctum
Discovered Package: laravel/tinker
....................
8 của chúng tôi trong tệp
 - Installing laravel/sanctum [v2.11.2]: Downloading [100%]         
.................
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/sail
Discovered Package: laravel/sanctum
Discovered Package: laravel/tinker
....................
9 như sau

cd sanctumApp
composer require laravel/sanctum
3

Trong đoạn script trên, chúng tôi xác định bốn tuyến đường. Đầu tiên là yêu cầu

php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
0 tới
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
1 người dùng mới sử dụng phương pháp
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
2

Chúng tôi cũng đã xác định các tuyến khác, đến

php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
3, xem người dùng
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
4 và người dùng
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
5

Bạn có thể nhận thấy rằng chúng tôi cũng đã sử dụng

php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
6 khi nó chưa được tạo

Hãy tiếp tục và tạo bộ điều khiển này bằng cách chạy lệnh bên dưới

cd sanctumApp
composer require laravel/sanctum
4

Bây giờ hãy tiếp tục và chỉnh sửa bộ điều khiển này như sau

cd sanctumApp
composer require laravel/sanctum
5

Chúng tôi có một logic đơn giản trong Bộ điều khiển ở trên. Phương thức

php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
7 tạo người dùng mới được xác thực. Sau đó, nó sẽ tạo mã thông báo nếu đăng ký thành công

Hàm

php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
8 xác thực người dùng và tạo
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
9 khi đăng nhập thành công. Cuối cùng, phương thức
Copied Directory [/vendor/laravel/sanctum/database/migrations] To [/database/migrations]
Copied File [/vendor/laravel/sanctum/config/sanctum.php] To [/config/sanctum.php]
Publishing complete.
0 xóa phiên của người dùng

Bây giờ hãy kiểm tra ứng dụng của bạn trên Postman. Tùy thuộc vào các tuyến đường bạn đã sử dụng, bạn sẽ có thể thấy đầu ra sau

đầu ra đăng ký

Phần kết luận

Trong hướng dẫn này, chúng ta đã xem Laravel Sanctum là gì và nó làm gì. Chúng tôi cũng đã xem xét nó khác với Laravel Passport như thế nào và khi nào nên sử dụng nó

Cuối cùng, chúng tôi đã giới thiệu cách sử dụng Laravel Sanctum để xác thực và cấp quyền truy cập cho người dùng. Do đó, bạn có thể sử dụng kiến ​​thức này để xây dựng các API mạnh mẽ

Mã thông báo Sanctum là gì?

Sanctum cho phép bạn phát hành mã thông báo API/mã thông báo truy cập cá nhân có thể được sử dụng để xác thực các yêu cầu API cho ứng dụng của bạn . Khi thực hiện các yêu cầu sử dụng mã thông báo API, mã thông báo phải được đưa vào tiêu đề Ủy quyền dưới dạng mã thông báo Bearer.

Làm cách nào để tạo mã thông báo trong khu bảo tồn Laravel?

Các bước cài đặt .
Cài đặt qua nhà soạn nhạc. nhà soạn nhạc yêu cầu laravel/sanctum
Xuất bản nhà cung cấp dịch vụ Sanctum. nhà cung cấp thủ công php. xuất bản --provider="Laravel\Sanctum\SanctumServiceProvider"
Di chuyển cơ sở dữ liệu. .
Lộ trình xác thực API. .
Bảo vệ API Với Xác thực, chúng tôi cần sử dụng auth. phần mềm trung gian tôn nghiêm

Token thánh địa được lưu trữ ở đâu?

Trong trường hợp giao diện người dùng của bạn nằm trên một miền khác hoặc trên thiết bị di động, sanctum sẽ kiểm tra mã thông báo trong tiêu đề của yêu cầu. Sau khi đăng nhập, bạn lưu trữ mã thông báo trong localStorage hoặc phiên cục bộ , bạn cần đưa mã thông báo này vào tiêu đề Ủy quyền cho giao diện di động hoặc bên thứ ba.

Mã thông báo Sanctum có phải là JWT không?

Sanctum cung cấp cả xác thực dựa trên phiên và dựa trên mã thông báo và phù hợp với xác thực ứng dụng một trang [SPA]. Hộ chiếu sử dụng xác thực JWT làm tiêu chuẩn nhưng cũng triển khai OAuth 2 đầy đủ. 0 ủy quyền.

Chủ Đề