Cài đặt ENTRUST (Laravel 5 Package)
This post hasn't been updated for 7 years
Cài đặt và sử dụng ENTRUST (Laravel 5 Package)
Entrust là một package hỗ trợ cho việc authentication một cách dễ dàng hơn với việc chúng ta phải tạo ra các bảng và các phương thức phức tạp.
Entrust đã hỗ trợ chúng ta điều này. Và bây giời chúng ta bắt đầu cài đặt thôi nào.
-
Dầu tiên chúng ta hãy thêm dòng này vào mục require-dev trong file composer.json :
"zizaco/entrust": "5.2.x-dev"
-
Sau đó chạy lệnh composer update
-
Mở file onfig/app.php và thêm vào mục
providers
vàaliases
Zizaco\Entrust\EntrustServiceProvider::class, 'Entrust' => Zizaco\Entrust\EntrustFacade::class,
-
Tiếp theo chạy lệnh
php artisan vendor:publish
để public các file cấu hình trong fileconfig/entrust.php
-
Mở file
config/auth.php
và chỉnh sửa đoạn code :'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => Namespace\Of\Your\User\Model\User::class, 'table' => 'users', ], ],
Trong đó table sẽ là đường dẫn đến model các bạn muốn. Ở đây mình sẽ lấy là : App\Models\User
.
Và tất nhiên nếu các bạn muốn dùng thêm cái middleware thì entrust cũng hỗ trợ sãn. Việc các bạn phải làm là thêm vào file app/Http/Kernel.php.
như sau :
'role' => \Zizaco\Entrust\Middleware\EntrustRole::class,
'permission' => \Zizaco\Entrust\Middleware\EntrustPermission::class,
'ability' => \Zizaco\Entrust\Middleware\EntrustAbility::class,
Đến đây việc cài đặt cơ bản đã hoàn thành. Bây giờ chúng ta hãy chạy lệnh php artisan entrust:migration
để tạo migration.
Vào database\migrateions
kiểm tra _entrust_setup_tables.php
. Chạy lệnh php artisan migrate
. Việc chạy lệnh này sẽ tạo ra 4 bảng gồm :
- roles — lưu role record
- permissions — lưu permission record
- role_user — bản này sẽ có quan hệ many-to-many với bản roles và bản users
- permission_role — bản này sẽ có quan hệ many-to-many giữa bản roles và bản permissions
Tạo Role model theo đường dẫn app/models/Role.php
:
<?php namespace App;
use Zizaco\Entrust\EntrustRole;
class Role extends EntrustRole
{
}
Permission
Tạo Permission model theo đường dẫn app/models/Permission.php
:
<?php namespace App;
use Zizaco\Entrust\EntrustPermission;
class Permission extends EntrustPermission
{
}
User
Tiếp theo, thêm vào dòng này ở User model của bạn use EntrustUserTrait;
<?php
use Zizaco\Entrust\Traits\EntrustUserTrait;
class User extends Eloquent
{
use EntrustUserTrait; // add this trait to your user model
...
}
Đây sẽ cho phép eloquent tạo quan hệ với Role và thêm vào các phương thức như : roles()
,hasRole($roleName)
, can($permission)
, và ability($roles, $permissions, $options)
.
Và cuối cùng, đừng quên chạy lệnh : composer dump-autoload
.
Như vậy chúng ta đã cài đặt thành công Entrust. Chúc các bạn thành công.
Tài liệu tham khảo
All Rights Reserved