Được đăng ban đầu @ https. // mã và triển khai. com truy cập và tải xuống mã mẫu. https. // mã và triển khai. com/blog/laravel/laravel-8-user-roles-and-permissions-step-by-step-tutorial
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ớ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 mình tự động đọc route dưới dạng quyền thông qua middleware nên bạn không cần add 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 8 để 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 https://github.com/codeanddeploy/laravel8-authentication-example.git
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
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
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
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
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
composer require laravelcollective/html
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Sau đó chạy lệnh này
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Sau khi chạy lệnh trên, bạn sẽ thấy tệp cấu hình có tên
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
9 và các lần 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ềnphp artisan migrate
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
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
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
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
________số 8
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Sau đó chạy, di chuyển
php artisan migrate
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Bước 4. Tạo mô hình
Tiếp theo, chúng tôi sẽ tạo các mô hình của chúng tôi và thiết lập các chi tiết quan trọng. Nếu bạn đang sử dụng hướng dẫn xác thực trước đây của tôi, bạn chỉ cần cập nhật mô hình Người dùng. Xem các mã hoàn chỉnh sau đây
ứng dụng/Mô hình/Người dùng. php
composer update
0Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Tiếp theo, chúng ta sẽ tạo một model cho Post. Chạy lệnh sau
composer update
0Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Đăng mã mô hình bên dưới
ứng dụng/Mô hình/Bài đăng. php
composer update
1Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Bước 5. Thêm phần mềm trung gian
Trong ví dụ này, tôi đang thực hiện một phần mềm trung gian tùy chỉnh cho Quyền của chúng tôi để đọc tuyến đường hiện tại nếu chúng tôi cho phép
Hãy tạo phần mềm trung gian tùy chỉnh của chúng tôi. Chạy lệnh sau
composer update
2Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Và đây là mã tùy chỉnh của lớp PermissionMiddlware của chúng tôi. Điều hướng đến Ứng dụng\Http\Middleware\PermissionMiddleware. php
composer update
3Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Sau đó, hãy đăng ký phần mềm trung gian đã tạo của chúng tôi và phần mềm trung gian Spatie mặc định
Bây giờ, hãy điều hướng tệp app/Http/Kernel. php thì trong thuộc tính $routeMiddleware chúng ta sẽ thêm các phần mềm trung gian sau
composer update
4Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Như bạn có thể thấy ở trên, chúng tôi đã thêm phần mềm trung gian tùy chỉnh của mình
Bước 6. Thêm tuyến đường
Bây giờ, hãy thêm các tuyến đường của chúng tôi, nếu bạn đang sử dụng xác thực Laravel 8 của tôi, chỉ cần chỉnh sửa hoặc sao chép mã tuyến đường hoàn chỉnh bên dưới
composer update
5Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Bước 7. Thêm bộ điều khiển
Trong bước này, chúng tôi sẽ thêm bộ điều khiển cho Người dùng, Bài đăng, Vai trò và Quyền, vui lòng xem từng bộ điều khiển bên dưới
Ứng dụng\Http\Controllers\UsersController. php
composer update
6Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Ứng dụng\Http\Controllers\PostController. php
composer update
7Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Ứng dụng\Http\Controllers\RolesController. php
composer update
8Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Ứng dụng\Http\Controllers\PermissionsController. php
composer update
9Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Bước 8. Thêm yêu cầu
Trong UsersController của tôi, tôi đã triển khai một yêu cầu cụ thể cho từng hành động, nó sẽ giúp rút ngắn mã của bạn và đặt các chức năng khác cũng như kiểm tra sang một lớp khác và mã của bạn dễ đọc hơn
Chạy các lệnh sau bên dưới để tạo yêu cầu
composer require spatie/laravel-permission
0Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Sau khi hoàn thành, vui lòng xem mã của từng yêu cầu
Ứng dụng\Http\Requests\StoreUserRequest. php
composer require spatie/laravel-permission
1Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Ứng dụng\Http\Requests\UpdateUserRequest. php
composer require spatie/laravel-permission
2Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Bước 9. Thêm tập tin Blade
Trong bài đăng này, chúng tôi sẽ tạo các tệp phiến của chúng tôi để xem và bố cục của chúng tôi
tài nguyên/lượt xem/bố cục/ứng dụng chính. lưỡi. php
composer require spatie/laravel-permission
3Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
tài nguyên/lượt xem/bố cục/phần/thông báo. lưỡi. php
composer require spatie/laravel-permission
4Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
tài nguyên/lượt xem/bố cục/phần/thanh điều hướng. lưỡi. php
composer require spatie/laravel-permission
5Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
tài nguyên/lượt xem/quyền/tạo. lưỡi. php
composer require spatie/laravel-permission
6Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
tài nguyên/lượt xem/quyền/chỉnh sửa. lưỡi. php
composer require spatie/laravel-permission
7Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
tài nguyên/lượt xem/quyền/chỉ mục. lưỡi. php
composer require spatie/laravel-permission
8Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
tài nguyên/lượt xem/bài đăng/tạo. lưỡi. php
composer require spatie/laravel-permission
9Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
tài nguyên/lượt xem/bài đăng/chỉnh sửa. lưỡi. php
composer require laravelcollective/html
0Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
tài nguyên/lượt xem/bài đăng/chỉ mục. lưỡi. php
composer require laravelcollective/html
1Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
tài nguyên/lượt xem/bài đăng/hiển thị. lưỡi. php
composer require laravelcollective/html
2Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
tài nguyên/lượt xem/vai trò/tạo. lưỡi. php
composer require laravelcollective/html
3Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
tài nguyên/lượt xem/vai trò/chỉnh sửa. lưỡi. php
composer require laravelcollective/html
4Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
tài nguyên/lượt xem/vai trò/chỉ mục. lưỡi. php
composer require laravelcollective/html
5Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
tài nguyên/lượt xem/vai trò/hiển thị. lưỡi. php
composer require laravelcollective/html
6Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
tài nguyên/lượt xem/người dùng/tạo. lưỡi. php
composer require laravelcollective/html
7Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
tài nguyên/lượt xem/người dùng/chỉnh sửa. lưỡi. php
composer require laravelcollective/html
8Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
tài nguyên/lượt xem/người dùng/chỉ mục. lưỡi. php
composer require laravelcollective/html
9Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
tài nguyên/lượt xem/người dùng/hiển thị. lưỡi. php
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
0Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Bước 10. Tạo lệnh
Tiếp theo, chúng ta sẽ tạo một lệnh để tạo quyền laravel bằng cách sử dụng tên route. Chạy lệnh bên dưới
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
1Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Điều hướng Ứng dụng\Console\Commands\CreateRoutePermissionsCommand. php và sao chép mã bên dưới
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
2Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Sau đó, tiếp theo, hãy chạy lệnh đã tạo
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
3Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
GHI CHÚ. Nếu bạn đang trong quá trình sản xuất, vui lòng thêm bộ lập lịch cho lệnh này để bạn không cần phải chạy thủ công
Bước 11. Thêm Seeder quản trị người dùng
Tiếp theo, chúng ta nên có người dùng mặc định là quản trị viên để bạn có thể truy cập hệ thống của mình bằng người dùng mặc định đã tạo
Chạy lệnh sau
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
4Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Sau đó điều hướng*Database\Seeders\CreateAdminUserSeeder. php* và sao chép mã bên dưới
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
5Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Sau đó chạy lệnh sau
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
6Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Bây giờ bạn đã có một quản trị viên mà bạn có thể sử dụng để đăng nhập và kiểm tra các Quyền và Vai trò Người dùng Laravel 8 ACL của mình
Bây giờ bạn đã sẵn sàng. Chạy lệnh sau để kiểm tra
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
7Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Sau đó truy cập nó vào trình duyệt của bạn
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
8Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Đừng quên rằng thông tin đăng nhập của bạn là
email. quản trị viên
mật khẩu. quản trị123
Tôi hy vọng hướng dẫn này có thể giúp bạn. Vui lòng truy cập tại đây https. // mã và triển khai. com/blog/laravel/laravel-8-user-roles-and-permissions-step-by-step-tutorial nếu bạn muốn tải xuống mã này