Phân quyền (authorization) các bạn lan rộng trên các trang web 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ới Laravel Authentication, chúng ta cũng có lẽ tận dụng các chương trình khác giống như Internet xã hội để xác minh.
Laravel giống như authorization
Laravel mất authorization middleware
Trong Laravel authorization middleware, có lẽ hay dùng ngay 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 các bạn 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ẽ đánh giá lần lượt 2 cách này. Gate là các Closure được khẳng định nếu một các bạn được xác minh để làm một hành động, nó được định nghĩa trong AppProvidersAuthServiceProvider dùng facade Gate./**
* Register any authentication được / authorization services.
*
* @return void
*/
public function boot()
$this->registerPolicies();
Gate::define('update-post', function ($user, $post)
return $user->id == $post->user_id;
nhanh );
Gate cũng bỗng nhiên có lẽ định nghĩa dùng dạng callback string giống như Controller:
/**
* Register any authentication thôi / authorization services.
*
* @return void
*/
public function boot()
$this->registerPolicies();
Gate::define('update-post', 'PostPolicy@update');
chỉ
Resource mất Gates Bạn có lẽ định nghĩa đa dạng Gate dùng phương thức resource
Gate::resource('posts', 'PostPolicy');

Laravel như authorization example
Policy là các class quản lý hợp lý trong phân quyền nhất ảnh hưởng đến một Model hoặc tài nguyên nào đó. Ví dụ, nếu chương trình của bạn là một blog, bạn có lẽ có một model Post và một policy là postpolicy để phân quyền các hành động các bạn giống như tạo hay cập nhật các bài viết. Một policy muốn dùng cần được đăng ký, AuthServiceProvider được đưa vào trong project Laravel chứa một thuộc tính policies để map Eloquent model với các policy tương ứng Laravel authorization example.<?php namespace AppProviders; use AppPost; use AppPoliciesPostPolicy; use lại IlluminateSupportFacadesGate; use IlluminateFoundationSupportProvidersAuthServiceProvider as ServiceProvider; class AuthServiceProvider extends ServiceProvider /** * The policy mappings for the application. * * @var array */ protected $policies = [ Post::class => PostPolicy::class, ]; /** * Register any application authentication / authorization services. * * @return void */ public function boot() $this->registerPolicies(); // hữu ích
Lê Trương Tấn Lộc ()
Có hơn 6 năm kinh nghiệm Laravel và 8 năm quản trị web site, tôi chuyên tư vấn đẩy top Google, Kinh doanh online tối ưu cho tập đoàn quốc tế, hiện làm giám đốc kinh doanh tại Siêu Tốc Việt.