Laravel mô hình authorization
Laravel authorization mất middleware
Trong mất Laravel authorization middleware, có lẽ hay dùng session guard có lẽ hoặc token bỗng nhiên 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.
/**
* chính Register any authentication / authorization services.
cũng *
* @return chỉ void
*/
public function boot()
$this->registerPolicies();
Gate::define('update-post', function ($user, $post)
return $user->id == $post->user_id;
nhanh );
Gate cũng có lẽ lại định nghĩa dùng cũ dạng callback sẽ string giống như Controller:
/**
* cũng Register any dễ authentication / authorization services.
đã *
* @return void
*/
public function boot()
$this->registerPolicies();
Gate::define('update-post', 'PostPolicy@update');
chỉ
Resource máy Gates Bạn có lẽ định nghĩa đa dạng Gate dùng phương thức resource
Gate khả năng ::resource('posts', 'PostPolicy');
Laravel mục tiêu authorization example
Policy đã là các class chớ quản lý lắm hợp 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 AppProviders; chẳng use AppPost; lại 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
Võ Minh Tốt ()
Với hơn 4 năm kinh nghiệm lập trình (Python, PHP, JS, Wordpress...) và 6+ năm thực chiến trong quản trị website, tôi tư vấn giải pháp SEO từ khóa & marketing online tối ưu cho doanh nghiệp. Hiện là Trưởng phòng Kinh doanh tại Siêu Tốc Việt.