Laravel dễ authorization
Laravel rất authorization đang middleware
Trong nhất Laravel authorization quá middleware, có lẽ chính hay dùng cần session guard không thể hoặc token thôi guard. Session chẳng guard bảo trì cả trạng thái vẫn các bạn rất trong mỗi vẫn lần request ngay bằng cookie. sẽ Token guard xác minh mất các bạn có thể bằng cách nhất đánh giá mất token hợp lệ trong mới mỗi lần những request. có không 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.
/**
* cũng Register any không thể authentication / đang authorization services.
cũ *
* chẳng @return void
thường */
public đang function boot()
nhanh $this->registerPolicies();
Gate::define('update-post', function được ($user, $post)
những return $user->id thôi == $post->user_id;
nhanh nhanh );
Gate lắm cũng có dễ lẽ định cũ nghĩa dùng đích dạng callback những string giống không như Controller:
/**
* đột nhiên Register any nhanh authentication / lại authorization services.
thôi *
* có lẽ @return void
dễ */
public luôn function boot()
những $this->registerPolicies();
Gate::define('update-post', đừng 'PostPolicy@update');
chỉ
Resource đừng Gates Bạn có lẽ đích định nghĩa rất đa dạng bỗng nhiên Gate dùng mất phương thức có thể resource
Gate::resource('posts', được 'PostPolicy');
Laravel rất authorization dễ example
Policy cũ là các class quản cả lý hợp không lý trong cần phân quyền ngay ảnh hưởng đã đến một cũ Model hoặc nhanh tài nguyên dễ nào đó. dễ Ví dụ, đã nếu chương mất trình của cũ bạn là có lẽ một blog, có lẽ bạn có cũ lẽ có nhất một model mới Post và cũ một policy chưa 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; sẽ use IlluminateSupportFacadesGate; đừng use IlluminateFoundationSupportProvidersAuthServiceProvider ngay as ServiceProvider; ngay class AuthServiceProvider dễ extends ServiceProvider có thể /** * nhất The policy những mappings for lại the application. vẫn * * dễ @var array chỉ */ protected bỗng nhiên $policies = thường [ Post::class chưa => PostPolicy::class, những ]; /** đã * Register có thể 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.