Phân quyền (authorization) người dùng trên các website không còn xa lạ với chúng ta ở đây, việc xác minh trong Laravel cũng khá dễ dàng và đơn giản với Laravel Authentication, chúng ta cũng có thể tận dụng các hệ thống khác như mạng xã hội để xác thực.
Laravel authorization
Laravel authorization middleware
Trong Laravel authorization middleware, có thể hay dùng session guard hoặc token guard. Session guard bảo trì trạng thái các bạn trong mỗi lần request bằng cookie. Token guard xác minh khách hàng bằng cách đánh giá token hợp lệ trong mỗi lần request. có 2 cách chính trong phân quyền, đó là Gates và Policies. Chúng ta sẽ tìm hiểu lần lượt 2 cách này. Gate là các Closure được khẳng định nếu một quý khách được xác minh để làm một hành động, nó được khái niệm trong AppProvidersAuthServiceProvider dùng facade Gate.
/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot()
$this->registerPolicies();
Gate::define('update-post', function ($user, $post)
return $user->id == $post->user_id;
);
Gate cũng có lẽ khái niệm dùng dạng callback string như Controller:
/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot()
$this->registerPolicies();
Gate::define('update-post', 'PostPolicy@update');
Resource Gates Bạn thường xuyên định nghĩa phổ biến Gate dùng phương thức resource
Gate::resource('posts', 'PostPolicy');