Phân quyền (authorization) khách hàng trên các trang web không còn xa lạ với chúng ta ở đây, việc xác thực 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 kế hoạch khác như mạng xã hội để xác minh.

Laravel authorization

Laravel authorization middleware

Trong Laravel authorization middleware, khả năng cao hay dùng session guard hoặc token guard. Session guard duy trì trạng thái khách hàng trong mỗi lần request bằng cookie. Token guard xác minh người dùng bằng cách kiểm sát 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 xác định nếu một người dùng được xác thực để 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ẽ định nghĩa dùng dạng callback string như là 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 khái niệm rộng rãi Gate dùng phương thức resource

Gate::resource('posts', 'PostPolicy');

Laravel authorization middleware

Laravel authorization example

Policy là các class quản lý tuyệt vời trong phân quyền liên quan đế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ẽ nắm tới một model Post và một policy là postpolicy để phân quyền các hành động người mua 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 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();

        //
    
Laravel authorization example
5/5 - (1 bình chọn)

Laravel authorization middleware - Định nghĩa chi tiết về LA

Lê Trương Tấn Lộc (sieutocviet.vn)

Với hơn 5 năm kinh nghiệm Wordpress, asp.net 5 năm kinh nghiệm trong quản trị web site tư vấn giải pháp SEO từ khóa, Marketing tối ưu nhất cho công ty.
Hiện làm leader kinh doanh tại Siêu Tốc Việt. ping post