Để triển khai Vai trò và Quyền, chúng tôi sử dụng gói “Spatie vai trò và quyền”. Gói này cung cấp API để xử lý vai trò và quyền dễ dàng hơn. Ngoài ra, mã cuối cùng thân thiện với người đọc và dễ hiểu hơn.
Giới thiệu về quyền của Vai trò Spatie
Gói quyền của vai trò Spatie cung cấp cho chúng tôi cách quản lý mức kiểm soát Truy cập trong Laravel. Sử dụng gói này, chúng tôi có thể gán một hoặc nhiều vai trò và quyền cho người dùng. Chúng ta không cần viết các quy tắc trong Chính sách hoặc Cổng, chúng ta chỉ cần gọi hàm với các đối số bắt buộc.
Cấu trúc cơ sở dữ liệu
Gói này sẽ tạo 5 bảng trong cơ sở dữ liệu, đó là.
- vai trò. Trong bảng này, chúng tôi lưu trữ một danh sách các vai trò
- Quyền. Lưu trữ danh sách các quyền
- Vai trò_có_quyền. Lưu trữ danh sách role_id được đồng bộ hóa với permission_id
- Model_has_roles. Bảng này chỉ có 3 cột role_id, model_id và model_type
- role_id là khóa ngoại từ bảng vai trò
- mô hình là một khóa ngoại từ bảng người dùng
- model_type lưu trữ đường dẫn của mô hình người dùng. Giá trị mặc định của cột model_type là ‘Ứng dụng/Người dùng’, vì theo cấu trúc của Laravel, bảng người dùng mặc định tồn tại ở cùng một vị trí
Xin chào Dev, Vì vậy, hôm nay chúng ta sẽ tìm hiểu về Laravel 9 User Roles and Permissions Tutorial Ví dụ. Hướng dẫn này sẽ bao gồm hướng dẫn về vai trò và quyền của người dùng trong laravel 9 với ví dụ
Cuối cùng, chúng ta sẽ sử dụng gói quyền spatie/laravel cho hướng dẫn này. Gói trình soạn thảo quyền và vai trò Spatie cung cấp cách tạo ACL trong laravel 9. Họ cung cấp cách…
Trong bài đăng này, tôi sẽ chia sẻ cách triển khai Phương thức ACL Vai trò & Quyền trên Laravel 8 và 9 với hướng dẫn từng bước sẽ giúp bạn hiểu quy trình. Chúng tôi biết rằng việc triển khai vai trò và quyền của người dùng là một trong những chức năng cơ bản cần triển khai trong các ứng dụng web của chúng tôi để hạn chế người dùng cụ thể chỉ quản trị viên mới được phép truy cập. Đó là lý do tại sao chúng ta cần triển khai người dùng dựa trên vai trò với các quyền được chỉ định. Trong ví dụ này, tôi tự động đọc route dưới dạng quyền thông qua phần mềm trung gian để bạn không cần phải thêm thủ công. Chúng tôi cũng có một tính năng trong ví dụ này để thêm quyền theo cách thủ công
Bằng cách làm theo hướng dẫn này, việc triển khai quyền Laravel và bảo mật tài khoản người dùng của bạn sẽ dễ dàng hơn
Trong ví dụ này tôi đã thêm các mô-đun sau
- Quản lý người dùng
- - Tạo quản lý người dùng đơn giản bằng Laravel 9 để bạn dễ dàng xin phép Laravel hơn
- Quản lý vai trò
- - Quản lý vai trò đơn giản sẽ giúp chúng tôi thêm vai trò cho tài khoản người dùng và xác định người dùng đã gán quyền Laravel
- Quản lý quyền
- - Quản lý quyền của Laravel sẽ liệt kê tất cả các tên tuyến đường bằng cách sử dụng lệnh bảng điều khiển Laravel
- Quản lý sản phẩm
- - Quản lý sản phẩm đơn giản và đăng ký quyền Laravel với từng vai trò là người dùng
Với xác thực mà bạn có thể làm theo trong hướng dẫn trước của tôi
Vì vậy, hãy bắt đầu
Bước 1. Cài đặt Laravel
Tôi cho rằng bạn đã có dự án của mình ở địa phương. Để rút ngắn bài đăng này, vui lòng làm theo hướng dẫn trước của tôi với chức năng xác thực
Hoặc chạy và sao chép hướng dẫn trước đây của tôi về xác thực
git clone //github.com/codeanddeploy/laravel8-authentication-example.git
Sau đó, khi bạn sao chép nó, chỉ cần sao chép và dán nó vào htdocs của bạn nếu bạn sử dụng Wampp trên Windows
Sau đó điều hướng dự án của bạn và chạy lệnh này
composer update
Bước 2. Cài đặt gói
Tiếp theo, chúng ta cần cài đặt các gói Laravel cho ACL và Form Collections. Chạy lệnh sau bên dưới
composer require spatie/laravel-permission
composer require laravelcollective/html
Sau đó chạy lệnh này
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
Sau khi chạy lệnh trên, bạn sẽ thấy một tệp cấu hình có tên là quyền. php và di chuyển với *_permission_tables. php. Bây giờ hãy chạy lệnh để di chuyển các bảng quyền
php artisan migrate
Bước 3. Tạo bài di chuyển
Tiếp theo, chúng tôi sẽ tạo một di chuyển cho bảng bài viết. Chạy lệnh sau để làm điều đó
php artisan make:migration create_posts_table
Sau đó, hãy thực hiện di chuyển sau của chúng tôi. Xem bên dưới mã hoàn chỉnh