Laravel đáng tiếc authorization
Laravel authorization luôn middleware
Trong chậm Laravel authorization middleware, có lẽ hay dùng rất session guard hoặc token lắm 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 nền any authentication / authorization services.
*
* @return void
*/
public function boot()
$this->registerPolicies();
Gate::define('update-post', function ($user, $post)
return $user->id == $post->user_id;
nhanh );
Gate luôn cũng có lẽ định nghĩa dùng dạng callback string giống như Controller:
/**
* cả Register any authentication / authorization cũ services.
*
luôn * @return void
*/
public function boot()
$this->registerPolicies();
Gate::define('update-post', 'PostPolicy@update');
chỉ
Resource được Gates Bạn có có thể lẽ định nghĩa đa dạng Gate đã dùng phương thức resource
Gate cân nặng ::resource('posts', 'PostPolicy');
Laravel code authorization example
Policy là có lẽ các class quản ngay lý hợp lắm lý trong phân quyền ả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 song song AppProviders; use AppPost; use AppPoliciesPostPolicy; use 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
Tất Vành Cơ ()
Trải qua hơn 6 năm làm việc với PHP, Python, WordPress và quản trị website, tôi chuyên tư vấn SEO từ khóa và chiến lược marketing hiệu quả cho doanh nghiệp. Hiện giữ vai trò Leader kinh doanh tại Siêu Tốc Việt.